微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让 Godot Camera2D 不随玩家旋转?

如何解决如何让 Godot Camera2D 不随玩家旋转?

我有一个简单的横向卷轴平台游戏,其中玩家是一个球,我希望他在移动时旋转,看起来像是在滚动。

但是,我设置了一个 2D 摄像头,因此播放器位于屏幕的底部中央。我希望玩家留在那里,但是当我移动玩家时,相机会随着玩家一起绕圈移动。

如何阻止相机四处移动?

解决方法

想到了几个选项:

  • 推测玩家角色是带有 PhysicsBody2D 或类似字符的 KinematicBody2D(例如 Sprite)。而 Camera2DPhysicsBody2D 的孩子。好吧,旋转 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 举报,一经查实,本站将立刻删除。