Godot Tapping 游戏建议

问题描述

我想为移动设备创建一个类似 aim Lab 的“Circle Shot”这样的反应游戏。因此,用户将需要点击出现的圆圈,而不是拍摄。如果我想让它尽可能简单,我应该为圆圈使用哪个节点?精灵还是纹理按钮?

我还想问一下如何包含圆圈,这样它们就不会产生越界。我使用网格容器还是其他东西?

解决方法

为什么?

这个问题在某些方面很奇怪:

  1. 为什么要使用 TextureButton
    TextureButton实际上是一个Control节点,Control节点主要用于UI场景。
    我并不是说使用 TextureButton 来创建游戏而不是创建 UI 是不可能的,但我的意思是这不是做到这一点的最佳方式。
  2. 为什么要使用 Sprite
    您不能为此使用 Sprite,因为您无法点击它。
    Sprite 用例用于创建动画,只需在场景中放一张图片,也许还有背景用例等等。

那又怎样?

我主要建议使用:

  1. KinematicBody2D:此节点是 Node2D 类型,您可以通过附加脚本轻松在屏幕上移动它。
    您可以为它模拟物理并使用 move_and_slide()move_and_collide() 等函数移动它。
  2. RigidBody2D:这个节点也是一个 Node2D 类型,你可以很容易地模拟质量、重力和重量,让它有一个不能移动的物体本身,但可以通过环境力量(如冲击、重力或......)移动。

怎么样?

这些节点中的每一个都继承自具有 3 个信号的 CollisionObject2D 节点:

  1. mouse_entered():当鼠标指针(在本例中为手指)进入该对象的任何形状时发出。
  2. mouse_exited():当鼠标指针(在这种情况下,手指)退出此对象的所有形状时发出。

通过这些信号,您可以了解字符手指是否在圆圈内。
重要说明:我实际上并没有亲自测试过这个,因为我不是在移动设备上开发的,但由于我在为 PC 开发游戏方面的经验很少,这些应该可以。

建议

还要始终关注最新的稳定 godot documentation,看看是否有其他更好的解决方案或更好的节点来处理您的情况。