Godot TouchScreen 滑动检测器
Godot TouchScreen swipe detector
我正在 Godot3.1 中制作一个简单的 android 手机游戏。我需要制作一个滑动检测器来确定玩家是否滑动以及朝哪个方向(向左或向右)滑动。
我试过这个:
var swipe_start = null
var minimum_drag = 100
func _unhandled_input(event):
if event.is_action_pressed("click"):
swipe_start = event.get_position()
if event.is_action_released("click"):
_calculate_swipe(event.get_position())
func _calculate_swipe(swipe_end):
if swipe_start == null:
return
var swipe = swipe_end - swipe_start
if abs(swipe.x) > minimum_drag:
if swipe.x > 0:
_right()
else:
_left()
这在您用鼠标单击并滑动时有效,但在您的 android phone 上播放时无效。
有什么想法吗?
该代码只考虑点击而不考虑屏幕触摸,更正您有两个选择:
转到项目>项目设置>输入设备>指向并打开通过触摸模拟鼠标选项.
或使用以下代码:
func _unhandled_input(event):
if event is InputEventScreenTouch:
if event.pressed:
swipe_start = event.get_position()
else:
_calculate_swipe(event.get_position())
而不是:
func _unhandled_input(event):
if event.is_action_pressed("click"):
swipe_start = event.get_position()
if event.is_action_released("click"):
_calculate_swipe(event.get_position())
对于最后一个解决方案,代码仅考虑屏幕触摸,因此您无法在 PC 上测试它,除非您转到 项目 > 项目设置 > 输入设备 > 指向 和打开从鼠标模拟触摸
我正在 Godot3.1 中制作一个简单的 android 手机游戏。我需要制作一个滑动检测器来确定玩家是否滑动以及朝哪个方向(向左或向右)滑动。
我试过这个:
var swipe_start = null
var minimum_drag = 100
func _unhandled_input(event):
if event.is_action_pressed("click"):
swipe_start = event.get_position()
if event.is_action_released("click"):
_calculate_swipe(event.get_position())
func _calculate_swipe(swipe_end):
if swipe_start == null:
return
var swipe = swipe_end - swipe_start
if abs(swipe.x) > minimum_drag:
if swipe.x > 0:
_right()
else:
_left()
这在您用鼠标单击并滑动时有效,但在您的 android phone 上播放时无效。
有什么想法吗?
该代码只考虑点击而不考虑屏幕触摸,更正您有两个选择:
转到项目>项目设置>输入设备>指向并打开通过触摸模拟鼠标选项.
或使用以下代码:
func _unhandled_input(event):
if event is InputEventScreenTouch:
if event.pressed:
swipe_start = event.get_position()
else:
_calculate_swipe(event.get_position())
而不是:
func _unhandled_input(event):
if event.is_action_pressed("click"):
swipe_start = event.get_position()
if event.is_action_released("click"):
_calculate_swipe(event.get_position())
对于最后一个解决方案,代码仅考虑屏幕触摸,因此您无法在 PC 上测试它,除非您转到 项目 > 项目设置 > 输入设备 > 指向 和打开从鼠标模拟触摸