Hola a todos ! :D Vengo con mi primer post y duda xD bueno, soy nuevo en esto de los juegos, estoy creando un juego de plataformas, aun todo va bien pero me cay? una duda :S aver si ustedes pueden resolverla :D
?Como puedo hacer una variable o lo que sea para que mi enemigo (en este caso le llamo Robot) cada vez qe toque un bloque s?lido (que uso tanto para piso como para pared) se le invierta el sprite (osea, que si mira para la derecha, cuando toque el bloque mire para la izquierda), pero que este proceso pase siempre y no tenga fin a menos que el Robot sea destruido por el jugador? porqe yo puse qe cuando tenga colision contra el bloque el sprite se transforme y se invierta como con un espejo, Y FUNCIONA, PERO SOLO SUCEDE UNA VEZ Y LAS DEMAS VECES QUE CHOCA CONTRA EL BLOQUE NO SE INVIERTE MAS! Olvide decirles que tambien puse la accion para que cuando choque con el bloque se mueva al lado contrario (si venia de la derecha cuando golpee el bloque se mueva a la izquierda y etc) Ojala puedan ayudarme :D Gracias! Un saludo :)
En tu codigo,en el evento step ponele esto:
[gml]
if hspeed!=0 then
image_xscale=hspeed/abs(hspeed);
[/gml]
La funcion abs devuelve el valor absoluto de la velocidad horizontal en este caso(o sea que te da un numero igual a hspeed pero con signo positivo SIEMPRE),cuando tu objeto se mueva a la izquiera, hspeed<0 y hacia la derecha hspeed>0,entonces si es hacia la izquiera con velocidad 13:
[gml]
image_xscale=hspeed/abs(hspeed); // image_xscale=-13/abs(-13)=-13/13=-1
//el menos es porque se mueve en direccion negativa
[/gml]
ahora hacia la derecha:
[gml]
image_xscale=hspeed/abs(hspeed); // image_xscale=13/abs(13)=13/13=-1
//hacia la derecha es positivo
[/gml]
:| Amigo muchas gracias :D realmente me funcion?, te lo agradezco mucho! Ahora puedo seguir con mi juego sin problemas, te debo una che :D suerte y muchas gracias :)
Igualmente amigo!saludos y suerte