如何在Godot中使用ParallaxBackground实现稳定的2d游戏背景[一问随笔]
问题:
我尝试给2d游戏添加静态的背景,当角色运动速度很快时相机的渲染就跟不上角色了,背景会发生这样巨大的位移。
我将Camera2d节点和背景节点绑在一起,但根本无法解决这个问题。
我还尝试制作天空盒子作为解决方案,有没有什么更好的方案?
解决:
Godot提供了两种节点ParallaxBackground
和ParallaxLayer
,是专门用来做背景的。
-
按照
ParallaxBackground -> ParallaxLayer -> yourSprite
的方式摆放节点。yourSprite即是你的背景图。 -
在
ParallaxLayer
找到Motion一栏,将Scale
调整为0,0
,即可实现完全跟随镜头的背景。 -
如果希望背景运动速度和镜头有一定差异,产生一种背景视差的感觉,那就将上述
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