Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | scrapcupcake |
So, I’ve been studying the GDQuest tutorial on How to Detect Gestures (see here)
to make a ‘click and hold’ event controller. However, when I try to use the positions I get back to set my transform, it’s always about half the screen offset to the right and down from where I click. Is there something about screen positions that I’m not getting?
extends Node2D
signal pressed(pos)
signal press_cancel(pos)
signal press_complete(pos)
onready var hold = $PressHold
var hold_pos = Vector2()
func _input(event):
if not event is InputEventScreenTouch:
return
if event.pressed:
_start_press(event)
elif hold.is_stopped() and hold_pos != Vector2():
_complete_press()
else:
_cancel_press()
func _start_press(event):
hold_pos = event.position #Only not. !!!!!!!!!!!FIXME
global_position = hold_pos
emit_signal("pressed",hold_pos)
hold.start()
func _complete_press():
emit_signal("press_complete", hold_pos)
hold_pos = Vector2()
func _cancel_press():
hold.stop()
emit_signal("press_cancel", hold_pos)
hold_pos = Vector2()
func _on_PressHold_timeout():
_complete_press()