es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Esperado un bloque sangrado después de “si”

si está en la pared():
  si spritedir == "izquierda" y test_move(transform, Vector2(-1,0)):
    switch_anim("empujar")
  si spritedir == "derecha" y test_move(transform, Vector2(1,0)):
    switch_anim("empujar")
  si spritedir == "arriba" y test_move(transform, Vector2(0,-1)):
    switch_anim("empujar")
  si spritedir == "abajo" y test_move(transform, Vector2(0,1)):
    switch_anim("empujar")

This is your code translated to Spanish. Note that “switch_anim” and “test_move” are kept in English as they are function names.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con tu código es que no hay sangría después de la instrucción “if is_on_wall():”. En gdscript, la sangría es muy importante ya que determina el alcance del bloque de código. Así que necesitas sangrar el código que viene después de la instrucción “if is_on_wall():”, de esta manera:

    if is_on_wall():
        if spritedir == "left" and test_move(transform, Vector2(-1,0)):
            anim_switch("push")
        if spritedir == "right" and test_move(transform, Vector2(1,0)):
            anim_switch("push")
        if spritedir == "up" and test_move(transform, Vector2(0,-1)):
            anim_switch("push")
        if spritedir == "down" and test_move(transform, Vector2(0,1)):
            anim_switch("push")
    

    Asegúrate también de sangrar correctamente cualquier otro bloque de código que tengas en tu script. Esto debería solucionar el error que estás enfrentando.

Comments are closed.