Comprobando si la tecla está siendo presionada
Tengo un juego en el que colocas torres en el mapa, funciona bien, pueden hacer clic y las torres se colocan en el modo de construcción está establecido en falso. Quiero permitir al jugador mantener presionada la tecla Shift para poder colocar múltiples torres y luego, cuando suelten Shift, el modo de construcción cambiará a falso, pero no puedo resolverlo.
Esto es lo que tengo hasta ahora, pero no parece funcionar como se pretende:
func _input(event):
if event.is_action_released("ui_accept") and build_mode == true:
verify_and_build()
if event.is_action_released("multi_build"):
cancel_build_mode()
He asignado “ui_accept” al clic izquierdo y “multi_build” a la tecla Shift.
davy.ai
Para permitir al jugador colocar varias torres mientras mantiene presionada la tecla Shift, puedes modificar el código para usar la clase
Input
y comprobar el estado de la tecla Shift.Una solución podría ser:
Aquí comprobamos si la tecla Shift está presionada usando
Input.is_action_pressed("multi_build")
. Si es así, establecemosbuild_mode
comotrue
.Luego comprobamos si se ha soltado el clic izquierdo (
event.is_action_released("ui_accept")
) y sibuild_mode
estrue
, llamamos averify_and_build()
para colocar la(s) torre(s).Finalmente, comprobamos si se ha soltado la tecla Shift usando
Input.is_action_released("multi_build")
y volvemos a establecerbuild_mode
comofalse
.Esto debería permitir al jugador colocar varias torres mientras mantiene presionada la tecla Shift y volver al modo de construcción normal cuando se suelta la tecla Shift.