如何使用Godot同时检测多个移动输入

  • 本文关键字:移动 何使用 Godot mobile godot
  • 更新时间 :
  • 英文 :


在我目前制作的游戏中,玩家经常需要同时按下两个按钮,例如"跳跃";以及";左";。目前,我在屏幕左侧有两个按钮用于向左和向右,在右侧有一个用于跳跃。问题是,如果玩家按下其中任何一个按钮,它会有效地锁定其他按钮,使其无法按下。

有没有办法,也许使用InputEventScreenTouch,我可以检测用户每帧的当前触摸屏输入,并检查他们是否按下了一个或多个按钮?

编辑以获取更多信息:目前,每个按钮都会将其button_down()button_up()信号发送到HUD场景根中的同一功能,我有简单的功能来处理:

func setLeft(val):
# This is the variable that the player
# checks each frame to see if it should move
self.get_parent().get_parent().goingLeft = val

因此,当玩家开始按下左键时,它会将goingLeft设置为true,当他们释放它时,它将goingLeft设置为false

这应该很好,但我发现,如果玩家在其他地方触摸屏幕,按钮不会记录输入。例如,如果我按下左键,玩家开始向左移动,然后当我按住它时,我开始按下跳跃。跳转按钮没有注册,因为我的手指已经在屏幕上的其他地方按下了(左边的(。

如果是我按下的按钮似乎并不重要,只是Godot只会在只有一个输入的情况下检查按钮。

有什么办法绕过这个吗?

多亏了评论中的一些人,我找到了解决方案!

我将按钮类型更改为TouchScreenButton节点,并且它们启用了多点触摸,因此我可以在移动设备上一次按下多个按钮!

相关内容

  • 没有找到相关文章

最新更新