El sistema de controles táctiles y de ratón permite al jugador interactuar con el juego mediante toques o clics. Detecta la posición de la interacción para determinar la dirección del movimiento y cerrar el juego.
codeImplementación
func _comprobar_pantalla_tactil_y_raton(event: InputEvent):
# Control con pantalla táctil o ratón
if event is InputEventScreenTouch or event is InputEventMouseButton:
if event.pressed:
# Si se ha pulsado el botón de cerrar
if boton_cerrar.has_point(event.position):
if get_tree():
get_tree().quit.call_deferred()
return
# Dirección según posición del toque/clic
var centro_nave = jugador.position.x + TAM_JUGADOR / 2
if event.position.x < centro_nave:
tocando_izquierda = true
tocando_derecha = false
else:
tocando_derecha = true
tocando_izquierda = false
else:
# Al soltar, detenemos el movimiento
tocando_izquierda = false
tocando_derecha = false
# Control con pantalla táctil o ratón
if event is InputEventScreenTouch or event is InputEventMouseButton:
if event.pressed:
# Si se ha pulsado el botón de cerrar
if boton_cerrar.has_point(event.position):
if get_tree():
get_tree().quit.call_deferred()
return
# Dirección según posición del toque/clic
var centro_nave = jugador.position.x + TAM_JUGADOR / 2
if event.position.x < centro_nave:
tocando_izquierda = true
tocando_derecha = false
else:
tocando_derecha = true
tocando_izquierda = false
else:
# Al soltar, detenemos el movimiento
tocando_izquierda = false
tocando_derecha = false
touch_appDetección de interacción
touch_app
InputEventScreenTouch
Eventos de pantalla táctil
mouse
InputEventMouseButton
Eventos de ratón
gps_fixed
Se detecta la posición exacta del toque/clic mediante event.position
touch_app
El estado event.pressed indica si se está presionando o soltando
compare_arrows
La dirección se determina comparando con el centro de la nave
closeBotón para cerrar
place
El botón de cerrar se ubica en la esquina superior derecha
crop_free
Se verifica si el toque/clic está dentro del rectángulo del botón con has_point()
exit_to_app
Al presionarlo, se cierra el juego mediante get_tree().quit.call_deferred()
pan_tool
Al soltar el botón o dejar de tocar la pantalla, se detiene el movimiento