Hellswipers/game/input.gd

38 lines
899 B
GDScript3
Raw Normal View History

2024-03-14 17:39:20 +00:00
extends Object
static var start = null
static func calc_swipe(end):
if start == null:
return null
var delta = end - start
var biggest = max(abs(delta.x), abs(delta.y))
if biggest < 50:
return null
if abs(delta.x) > abs(delta.y):
if delta.x < 0:
return Global.DIRS.LEFT
else:
return Global.DIRS.RIGHT
else:
if delta.y < 0:
return Global.DIRS.UP
else:
return Global.DIRS.DOWN
static func _input(event: InputEvent):
var d = null
if event.is_action_pressed('left_mouse_button'):
start = event.get_position()
if event.is_action_released('left_mouse_button'):
d = calc_swipe(event.get_position())
if event.is_action_released('key_up'):
d = Global.DIRS.UP
if event.is_action_released('key_down'):
d = Global.DIRS.DOWN
if event.is_action_released('key_left'):
d = Global.DIRS.LEFT
if event.is_action_released('key_right'):
d = Global.DIRS.RIGHT
return d