Closed rodigu closed 1 month ago
Seria bom privar (_) a variavel de historia e ter uma funcao que retorna um vector2 em certo ponto do historico?
class_name TouchDrag
extends Node
signal touch_start
signal touch_released
export var history_length = 5
var history = []
onready var pos_modifier = get_viewport().get_visible_rect().size * .5
func _input(event):
if event is InputEventScreenTouch:
if event.pressed:
emit_signal("touch_start")
else:
emit_signal("touch_released")
func _process(delta):
history.append(get_viewport().get_mouse_position() - pos_modifier)
if len(history) > history_length:
history.pop_front()
func get_last_position():
if len(history) == 0:
return null
return history[-1]
Pelo que entendi ele guarda com um append as posições que você acabou de executar no viewport:
history.append(get_viewport().get_mouse_position() - pos_modifier)
Esse history contem dentro da array(lista) os vetores 2d da posição de onde o "mouse" passou, já que todo viewport é considerado 2d por padrão. Porém acabei de ver que existe uma array apenas para vetores 2d referência: https://docs.godotengine.org/en/3.6/classes/class_poolvector2array.html#class-poolvector2array
TIRADO DO SITE DO GODOT DOCUMENTATION...
var array = [PoolVector2Array()]
array[0].push_back(Vector2(12, 34))
print(array) # [[]] (empty PoolVector2Array within an Array)
eu acho que transformar em uma variável privada não faria muita diferença só deixaria o processo de atribuição dela mais dificil pois teria sempre que referênciar ela nas func privadas.
Relações
Interfaces
Sinais
Variáveis
Funções
Efeitos Colaterais
Referências