Godot场景树移动物体方法及背景遮挡Player问题求助
解决滚动背景遮挡Player的问题
调整节点层级
- 直接在场景树里把Player节点拖到滚动背景节点的上方。Godot的渲染顺序遵循场景树从上到下的层级,下层节点会覆盖上层节点,只要Player在背景节点之上,就不会被遮挡。
- 如果你是通过
Add_child动态创建背景精灵,调用时可以传入第二个参数false,让新精灵添加到子节点列表的前面,避免覆盖后续的Player:add_child(new_background_sprite, false)
纠正Parallax节点的使用误区
你认为Parallax无法使用不同精灵是错误的。ParallaxBackground支持添加多个ParallaxLayer,每个Layer可以独立放置不同的精灵、AnimatedSprite,甚至动态创建的节点:
- 创建ParallaxBackground作为背景的根节点
- 给它添加若干个ParallaxLayer子节点
- 每个ParallaxLayer里可以放入不同的精灵资源,或者通过脚本动态添加不同的精灵实例
- 调整每个ParallaxLayer的
motion_scale参数,还能实现多层视差滚动效果,比手动写滚动脚本更高效
快速修复:修改Z轴索引
如果暂时不想调整节点结构,可以给Player节点设置更高的z_index值,背景节点设置更低的值:
# Player脚本中设置 z_index = 10 # 背景精灵脚本中设置 z_index = -1
内容的提问来源于stack exchange,提问作者SY DIE
相关产品推荐
相关产品推荐

