Godot Tapping 游戏建议
Posted
技术标签:
【中文标题】Godot Tapping 游戏建议【英文标题】:Godot Tapping Game Advice 【发布时间】:2021-07-22 05:13:52 【问题描述】:我想制作一款反应游戏,例如 Aim Lab 的“Circle Shot”移动游戏。因此,用户将需要点击出现的圆圈,而不是拍摄。如果我让它尽可能简单,我应该为圆圈使用什么节点?精灵或纹理按钮?
我还想问一下如何包含圆圈,以免它们超出范围。我是使用网格容器还是其他东西?
【问题讨论】:
使用TextureButton
会更容易制作原型,但它是Control
,您可能想也可能不想使用Node2D
(我假设这是一个2D 游戏)取决于你想创造什么。 “如何包含圆圈,使它们不会越界”您只是不会越界。老实说,去努力吧,当你遇到问题回来问。
如果我不使用单例,我应该把 spawnCircle() 和 popCircle() 等函数放在哪里?我应该将它放在附加到场景父节点的脚本中吗?
【参考方案1】:
为什么?
这个问题在某些方面很奇怪:
-
为什么要使用 TextureButton?
TextureButton实际上是一个Control节点,一个Control节点主要用于UI场景。
我并不是说不能使用 TextureButton 来创建游戏而不是创建 UI,但我的意思是这不是最好的方法。
为什么要使用 Sprite?
您不能为此使用 Sprite,因为您无法点击它。
Sprites 用例用于创建动画,只是在场景中有一张图片,可能是背景用例等。
那又怎样?
我主要建议的是使用:
-
KinematicBody2D:此节点是 Node2D 类型,您可以通过附加脚本轻松地在屏幕上移动它。
您可以为它模拟物理并使用 move_and_slide()、move_and_collide() 等函数移动它。
RigidBody2D:这个节点也是一个Node2D类型,你可以很容易地模拟一个质量,重力和重量让它有一个不能自己移动但可以移动的物体通过环境力(如拳头、重力或...)移动。
怎么做?
这些节点中的每一个都继承自具有 3 个信号的 CollisionObject2D 节点:
-
mouse_entered():当鼠标指针(在本场景中为手指)进入此对象的任何形状时发出。
mouse_exited():当鼠标指针(在本场景中为手指)退出此对象的所有形状时发出。
通过这些信号,您可以了解字符手指是否在圆圈内。重要提示:我实际上并没有亲自测试过,因为我不是在移动设备上开发,而是通过我在为 pc 开发游戏方面的一点经验,这些应该可以。
建议
还要时刻关注最新的稳定 godot documentation,看看是否有其他更好的解决方案或更好的节点来处理您的情况。
【讨论】:
如果我计划创建的圆圈完全不动,你认为 RigidBody2D 会比 Texture Button 更容易使用吗?它只会出现并停留在那里,直到计时器用完或用户点击它。 如果这是您要查找的内容并且您根本不想移动圆圈,TextureButton 将满足您的需求,但也许您会发现一些复杂性,因为 TextureButton 是一个控制节点并使用一个基于它创建整个游戏的控制节点,不是创建游戏的最佳方式,但正如我所说,它是可以做到的。希望你能处理好这种情况并享受编码的乐趣。 @newbie112 @newbie112 如果你只是接受我的回答,那会让我很开心。 :)以上是关于Godot Tapping 游戏建议的主要内容,如果未能解决你的问题,请参考以下文章