我正在Godot中构建一个游戏,遇到一个问题,如果鼠标或游戏板操纵杆在单击按钮时移动,Input.is_action_pressed、Input.is_action_just_pressed和Input.is_action _just_released都会多次触发。我尝试过检查is_echo,但没有任何东西注册为echo。
我正在寻找输入通过:
func _input(event):
if Input.is_action_just_released("AttackRange"):
fireGun()
这对我来说现在很容易重复。我所要做的就是在点击时移动鼠标,或者在按下按钮时移动游戏板上的任何一个操纵杆。我不知道是什么原因造成的。我应该以不同的方式倾听输入吗?
非常感谢您的帮助!
是的,您正在混合获取输入的方法。
使用_input
,只处理您在事件参数中得到的输入这通常更适合指向输入(鼠标或触摸(
或者将您的代码放在_process
(或_physics_process
(如果需要((中,并使用Input
对象。
在这种特殊情况下,我会将您必须的代码移动到_process
。