Foro Godot

Búsqueda Avanzada  

Noticias:

[31-07-2017] Creado el foro de Godot Engine en español !!!

Autor Tema: [SOLUCIONADO] Sistema De Combos  (Leído 313 veces)

Alex Night

  • Newbie
  • *
  • Karma: +0/-0
  • Mensajes: 8
    • Ver Perfil
[SOLUCIONADO] Sistema De Combos
« en: 02 de Agosto del 2017, 16:44 »

una pregunta:
tiene que ver mas con programacion que con el engine en si mismo..

queria practicar un "sistema" de combos, por ejemplo, presionar boton/tecla "ataque" 3 veces y que haga una animacion diferente en cada ataque(y vuelva al punto de inicio)..
se me habia ocurrido hacerlo con una lista,al presionar el boton "ataque", cada item/index de la lista pasa a ser "true"  por ejemplo:

var combo =[false,false,false]

func _input(event):
   if event.is_action_pressed("Action"):
      if combo[0] == false && event.is_action_pressed("Action"):
         combo[0] = true
      elif combo[0] == true && event.is_action_pressed("Action"):
          combo[1] = true
      elif combo[1]== true && event.is_action_pressed("Action"):
         combo[2] = true
      print(combo)

el problema es que de los 3 elementos de la lista "combo" solo el primero y el segundo pasan a ser "true", el ultimo queda en "false"
si alguno me puede dar una idea de cual podria ser el problema, desde ya muchas gracias!
« Última modificación: 05 de Septiembre del 2017, 14:35 por Capa »
En línea

Kash

  • Newbie
  • *
  • Karma: +2/-0
  • Mensajes: 4
    • Ver Perfil
Re:Sistema De Combos
« Respuesta #1 en: 02 de Agosto del 2017, 17:57 »

Hola amigo, el problema está en la forma  en que está acomodada la estructura de el/elif.

Inicialmente entra porque combo[0] es false:

  if event.is_action_pressed("Action"):
      if combo[0] == false && event.is_action_pressed("Action"):
         combo[0] = true

      elif combo[0] == true && event.is_action_pressed("Action"):
          combo[1] = true
      elif combo[1]== true && event.is_action_pressed("Action"):
         combo[2] = true
      print(combo)

una vez entra combo[0] es igual a true, entonces entra por la segunda parte, el primer elif:

  if event.is_action_pressed("Action"):
      if combo[0] == false && event.is_action_pressed("Action"):
         combo[0] = true
      elif combo[0] == true && event.is_action_pressed("Action"):
          combo[1] = true

      elif combo[1]== true && event.is_action_pressed("Action"):
         combo[2] = true
      print(combo)

quedando asi combo[0] y combo[1] en true.
La razon por la que nunca cambia combo[2] es porque siempre se satisface que:

combo[0] == true && event.is_action_pressed("Action"):

por lo que nunca se ejecuta el segundo elif, por ende nunca entra a combo[2] = true
En línea

Alex Night

  • Newbie
  • *
  • Karma: +0/-0
  • Mensajes: 8
    • Ver Perfil
Re:Sistema De Combos
« Respuesta #2 en: 02 de Agosto del 2017, 18:31 »

ahhh o sea al no chequear ambos: el combo[0]y el combo[1] en la ultima condicion, no se ejecuta el ultimo "true"
gracias amigo!
En línea

willer69

  • Newbie
  • *
  • Karma: +3/-0
  • Mensajes: 26
    • Ver Perfil
Re:[RESUELTO]Sistema De Combos
« Respuesta #3 en: 04 de Agosto del 2017, 03:00 »

Marco resuelto. Cualquier cosa me notificas. Gracias
En línea