Sistema de controles - Pantalla táctil y ratón

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

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