如何解决如何使用Godot同时检测多个移动输入?
在我当前正在制作的游戏中,玩家经常需要同时按下两个按钮,例如“ jump”和“ left”。目前,我在屏幕左侧有两个按钮用于左右移动,在右侧有一个按钮用于跳转。问题是,如果玩家按下其中任何一个按钮,它就会有效地锁定其他按钮,使您无法按下它们。
是否有某种方法,也许使用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
个节点,并且它们启用了多点触摸,因此我可以在移动设备上一次按下多个按钮!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。