首页 > 其他分享 >如何在Godot中使用ParallaxBackground实现稳定的2d游戏背景[一问随笔]

如何在Godot中使用ParallaxBackground实现稳定的2d游戏背景[一问随笔]

时间:2023-04-27 12:34:42浏览次数:40  
标签:Godot ParallaxLayer 背景 ParallaxBackground 2d 节点

问题:

我尝试给2d游戏添加静态的背景,当角色运动速度很快时相机的渲染就跟不上角色了,背景会发生这样巨大的位移。
image
image

我将Camera2d节点和背景节点绑在一起,但根本无法解决这个问题。

我还尝试制作天空盒子作为解决方案,有没有什么更好的方案?

解决:

Godot提供了两种节点ParallaxBackgroundParallaxLayer,是专门用来做背景的。

  1. 按照ParallaxBackground -> ParallaxLayer -> yourSprite的方式摆放节点。yourSprite即是你的背景图。

  2. ParallaxLayer找到Motion一栏,将Scale调整为 0,0,即可实现完全跟随镜头的背景。

  3. 如果希望背景运动速度和镜头有一定差异,产生一种背景视差的感觉,那就将上述Scale调整为0.5,0.5,或是别的0~1之间的数,之后会按照这个倍率移动背景。

思考:

毕竟Godot是2d引擎出生,对2d的支持比较丰富。而且因为是内置的,也许用这个也能实现优化Draw Call的效果吧。

参考:

https://godotengine.org/qa/39149/solved-static-background-from-already-existing-image-game

标签:Godot,ParallaxLayer,背景,ParallaxBackground,2d,节点
From: https://www.cnblogs.com/qiiimiu/p/17358587.html

相关文章

  • [ABC132D] Blue and Red Balls
    2023-01-16题目传送门翻译难度&重要性(1~10):3题目来源AtCoder题目算法dp解题思路因为蓝球的数量是固定的,题目让我们求,在取\(i\)次的情况下,有几种方案,首先我们肯定要枚举\(i\),范围就是\(\sum_{i=1}^{k}\)了,然后因为他每次只能取连续的蓝球,于是我们就可以想到用插板......
  • [ABC212D] Querying Multiset
    2023-01-08题目传送门翻译难度&重要性(1~10):1题目来源AtCoder题目算法模拟,优先队列解题思路用优先队列存储下加入的元素编号,对操作\(2\)把所有的\(k\)存在一起。完成状态已完成易错点注意,操作\(2\)只对已加入的编号\(+k\)。所以在新加入编号时要先拿编号减去......
  • 微信小程序使用canvas2d实现拼图游戏
    根据周文洁微信小程序开发实战编写,但是微信更新了canvas接口,按照书上写的已经不能使用了。目录 改进后如下:app.wxss:1.container{2height:100vh;3color:#E64340;4font-weight:bold;5display:flex;6flex-direction:column;7align-i......
  • 延迟绑定与 ret2dlresolve 详解
    ret2dlresolve是栈溢出下的一种攻击方法,主要用于程序没有办法利用puts、printf、writer函数等泄露程序内存信息的情况。延迟绑定在Linux中,为了程序运行的效率与性能,在没有开启FULLRELRO时候,程序在第一次执行函数时,会先执行一次动态链接,将对应函数的got表填上libc......
  • cocos2dx-js 帧动画的播放方法
    ctor:varload=ccs.load(res.Ani_json);varmainNode=load.node;this.addChild(mainNode);//对应帧动画的节点,使用seekWidgetByName无效,需要用getChildByNamethis._spriteAni=mainNode.getChildByName("spriteAni");this._spriteAni.setVisible(false);this._lo......
  • AGC002D Stamp Rally 多种做法 kruskal重构树/可持久化并查集/整体二分
    D-StampRally(atcoder.jp)这题做法很多,我写的是可持久化并查集做法,但是裸的可持久化并查集是$O(nlog^3n)$,能过但是很慢!看洛谷的题解有一位大佬写了一个很妙的并查集的写法,按秩合并,每一步合并时用vector记录一下这个被合并到的节点的size和当前的时间,这样做可以找到每一个时......
  • Linux_ubuntu_How to resize Launcher in Unity 2D
    via: http://www.dedoimedo.com/computers/ubuntu-unity-2d-resize-launcher.html ChangeUnity2DconfigurationfilesTheconfigurationfilesarelocatedunder /usr/share/unity-2d/shell.Youwillneedsudotoeditthefilescontainedtherein.Youshouldalsocr......
  • CCITT G3/G4 1D/2D编码
    CCITTG3/G41D/2D指:CCITTGroup3(T.4)1D(纯1维);CCITTGroup3(T.4)2D(至少一行1维(第一行开始连续行),剩余行2维);CCITTGroup4(T.6)2D(纯2维);针对纯黑色(0)和白色(1)的位图编码方案;   CCITTGroup3(T.4)1D:1维编码;每行以12位EOL(000000000001)码字开头;最......
  • 现代计算机图形学——P3. Transformation-2D
    P3.TransformationP3.Transformation 矩阵和变换联系起来 ReflectionMatrix(反射矩阵(名字不重要)):切变:旋转:推导:旋转矩阵中的B和D可以用(0,1)这个点来推算线性变换:(先不管这个M)齐次坐标为什么要用齐次坐标:......
  • 摇杆,3D、2D图片英雄对应位置,滚轮放大缩小
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.EventSystems;usingUnityEngine.UI;///<summary>///英雄移动///</summary>publicclassyd:MonoBehaviour,IDragHandler,IEndDragHandler{publ......