Enero 02, 2020, 08:28:13 PM Ultima modificación: Enero 04, 2020, 11:23:43 AM por Ikaro3d
Hola compañeros llevaba tiempo sin preguntar nada ,estoy siguiendo un curso y estoy topando con problemas que no entiendo ,tengo un personaje que anda de derechas a izquierdas y si se detiene se queda de frente , pero el caso que con el código que tengo puesto que es el mismo que el del curso , cunado pulso a la izquierda se desplaza pero no inicia la animación y hacia la derecha se desplaza pero se quede con el spr de frente

[gml] if (keyboard_check(ord("M"))) {
          
          
           sprite_index=spr_derecha
          x+=3
        }
        else {
          sprite_index=spr_frente
        }
          
       
       
if (keyboard_check(ord("N"))) {
          
          
           sprite_index=spr_izquierda
          x-=3
        }
       
        else {
          
          sprite_index=spr_frente 
        }[/gml]

if (keyboard_check(ord("M"))) {
             
             if sprite_index!=spr_derecha
             sprite_index=spr_derecha
             x+=3
          }
          else {
            if sprite_index!=spr_frente
            sprite_index=spr_frente
          }
             
         
         
if (keyboard_check(ord("N"))) {
             
             if sprite_index!=spr_izquierda
             sprite_index=spr_izquierda
             x-=3
          }
         
          else {
             if sprite_index!=spr_izquierda
            sprite_index=spr_izquierda
          }


lo que pasa es que se asignan los sprites en bucle, resete
andose la image_index a 0 en todo momento
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Gracias por la aclaracion, pero no logro entender como le puede funcionar al instructor, es un curso que hay en Udemy, sobre gml2

Hola Ikaro3d

Según como lo veo yo, el código no funciona bien, no sé que habrá hecho el instructor, de hecho no tiene mucho sentido para mi que se escriba un "else" después de cada keyboard_check.

Para mi lo que tiene sentido es que se haga algo así:
if keyboard_check(izquierda) {
//Moverse a la izquierda
}
else if keyboard_check(derecha) {
//Moverse a la derecha
}
else {
//No moverse
}


PD: la palabra izquierda y derecha dentro del Keyboard Check es referencial, ahí pones la tecla que quieras comprobar

Saludos

Cita de: BssString en Enero 02, 2020, 11:56:37 PM
Hola Ikaro3d

Según como lo veo yo, el código no funciona bien, no sé que habrá hecho el instructor, de hecho no tiene mucho sentido para mi que se escriba un "else" después de cada keyboard_check.

Para mi lo que tiene sentido es que se haga algo así:
if keyboard_check(izquierda) {
//Moverse a la izquierda
}
else if keyboard_check(derecha) {
//Moverse a la derecha
}
else {
//No moverse
}


PD: la palabra izquierda y derecha dentro del Keyboard Check es referencial, ahí pones la tecla que quieras comprobar

Saludos
Genial tu código funciona perfectamente gracias !!! , podía verte leído antes de haber formateado ,pensando que al igual tenia algún error en el sistema  :-[

aun a si  no tengo muy claro entonces para que se utiliza un else  si también podría poner un evento de teclado sin el