【Godot】教你實現(xiàn)PC和手機端的虛擬搖桿

extends Sprite2D
var maxlen = 100
var ondraging = -1
func get_dot_pos():
var vni = $Tip.position.normalized()
return vni
func _input(event):
if event is InputEventScreenTouch:
if ondraging == -1:
var mouse_pos = (event.position - self.global_position).length()
if mouse_pos <= maxlen:
ondraging = event.index
$Tip.set_global_position(event.position)
else:
if ondraging == event.index:
ondraging = -1
$Tip.position = Vector2.ZERO
elif event is InputEventScreenDrag and event.index == ondraging:
$Tip.set_global_position(event.position)
if $Tip.position.length() > maxlen:
$Tip.position = get_dot_pos() * maxlen
標(biāo)簽: