如何解决如何让 Godot Camera2D 不随玩家旋转?
我有一个简单的横向卷轴平台游戏,其中玩家是一个球,我希望他在移动时旋转,看起来像是在滚动。
但是,我设置了一个 2D 摄像头,因此播放器位于屏幕的底部中央。我希望玩家留在那里,但是当我移动玩家时,相机会随着玩家一起绕圈移动。
如何阻止相机四处移动?
解决方法
想到了几个选项:
- 推测玩家角色是带有
PhysicsBody2D
或类似字符的KinematicBody2D
(例如Sprite
)。而Camera2D
是PhysicsBody2D
的孩子。好吧,旋转Sprite
。这样旋转就不会影响Camera2D
。 当然,如果旋转是由物理驱动的,那么这个选项就没有用了。 - 好吧,没有理由让
Camera2D
成为您的PhysicsBody2D
的子项以使其跟随它。相反,您可以使用RemoteTransform2D
将其位置(使用update_position = true
)而不是它的旋转(使用update_rotation
= false)推送到另一个Node2D
。然后你让你的Camera2D
成为另一个Node2D
的孩子。 - 假设您根本不想让角色
PhysicsBody2D
有子元素。在这种情况下,您可以尝试使用PinJoint2D
。将您的node_a
设置为字符PhysicsBody2D
,将您的node_b
设置为某个RigidBody2D
,然后Camera2D
可以是RigidBody2D
的子代. - 或者你可以用脚本解决它。您可以添加一个
Node2D
并在其_physics_process
上将您角色的global_position
复制到它自己的global_position
中,以便它跟随它。然后使Camera2D
成为Node2D
的孩子。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。