Excelente, me ha funcionado muy bien.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
2
Preguntas y respuestas / Cambiar de sprite con if
Enero 14, 2013, 01:16:56 AM
Buenas comunidad, hace an~os que no posteaba por aquí!
Vayamos al punto. Me encuentro recién aprendiendo a usar GML, pero no logro hacer lo siguiente:
Evento Create
Evento Step
Lo que trato de hacer en este pedazo de código, es: Si la variable dirección tiene valor 0, es decir, a la derecha, el esprite de mi personaje es aquel que mira hacia la derecha. Pero, si ademas de que la variable tiene valor 0, y la variable de la coordenada en X se suma a si misma 3 unidades, debe cambiar a un sprite animado en el que mi personaje avanza hacia la derecha. El código termina haciendo lo mismo pero inversamente, es decir, a la izquierda.
Este es mi codigo al presionar la tecla Izquierda:
Y este al presionar la tecla Derecha:
Lo que si funciona: Según la tecla que presione, izquierda o derecha, la variable "dir" (dirección) cambia de valor, haciendo así que mi personaje apunte a la dirección en que avanza.
Lo que no funciona: Cuando mi personaje se mueve, su sprite no cambia a uno en que la animación de la sensación de que el personaje corre.
Soy un noob aun esto del código, espero puedan resolver mi duda. Desde ya, gracias.
Vayamos al punto. Me encuentro recién aprendiendo a usar GML, pero no logro hacer lo siguiente:
Evento Create
Código [Seleccionar]
//Variable direccion. 0=derecha, 1=izquierda
dir=0;
Evento Step
Código [Seleccionar]
//Derecha
if dir=0
{
if x=x+3
{
sprite_index=sprite3
image_speed=.2
}
else
sprite_index=sprite4
}
//Izquierda
if dir=1
{
if x=x-3
{
sprite_index=sprite2
image_speed=.2
}
else
sprite_index=sprite0
}
Lo que trato de hacer en este pedazo de código, es: Si la variable dirección tiene valor 0, es decir, a la derecha, el esprite de mi personaje es aquel que mira hacia la derecha. Pero, si ademas de que la variable tiene valor 0, y la variable de la coordenada en X se suma a si misma 3 unidades, debe cambiar a un sprite animado en el que mi personaje avanza hacia la derecha. El código termina haciendo lo mismo pero inversamente, es decir, a la izquierda.
Este es mi codigo al presionar la tecla Izquierda:
Código [Seleccionar]
dir=1;
if place_free(x-1,y)
{
x-=3
}
Y este al presionar la tecla Derecha:
Código [Seleccionar]
dir=0;
if place_free(x+1,y)
{
x+=3
}
Lo que si funciona: Según la tecla que presione, izquierda o derecha, la variable "dir" (dirección) cambia de valor, haciendo así que mi personaje apunte a la dirección en que avanza.
Lo que no funciona: Cuando mi personaje se mueve, su sprite no cambia a uno en que la animación de la sensación de que el personaje corre.
Soy un noob aun esto del código, espero puedan resolver mi duda. Desde ya, gracias.