Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: J-Dek en Junio 20, 2010, 05:30:45 AM

Título: Con cada click, una im?gen ??
Publicado por: J-Dek en Junio 20, 2010, 05:30:45 AM
Hola,

Tengo un sprite con varias im?genes y al hacer click con el boton izquierdo del raton me gustar?a que cambiara al siguiente im?ge single, con el m?ximo de 5 im?genes (entonces el ?ltimo image_single ser?a 4) y que al llegar al ?ltmo image_single, al dar click de nuevo, volviera al primero.

?se puede hacer?? ???
Título: Re: Con cada click, una im?gen ??
Publicado por: Texic en Junio 20, 2010, 06:03:01 AM
Como no?
En el create le pones image_speed=0
Y en el evento Mouse pressed pones

image_index+=1
if image_index=cantidad de imagenes {image_index=0} //Esta parte no es necesaria, el image_index hace loopback solo cuando se pasa del l?mite me parece
Título: Re: Con cada click, una im?gen ??
Publicado por: LuisYx en Junio 20, 2010, 06:18:15 AM
Texic, de echo seria alrevez, pues lo que haria es sumar 1 a
image_index y luego verificar, para asi cambiar,
En cambio si lo pones al revez verias que
primero verifica y despues ejecuta.
Título: Re: Con cada click, una im?gen ??
Publicado por: Texic en Junio 20, 2010, 06:48:54 AM
Es irrelevante, el evento draw no se ejecuta cada vez que cambias el valor de una variable
Título: Re: Con cada click, una im?gen ??
Publicado por: LuisYx en Junio 20, 2010, 07:37:01 AM
De echo si, puesto que yo tuve cierta experiencia con eso al andar programando mi juego,
con el siguiente codigo(Bueno eran 2 eventos y 2 objetos):

OBJ_JUGADOR:
Ev. Collision obj_vida:
if obj_controlador.parado = false{
obj_controlador.energia += 1}


OBJ_CONTROLADOR:
Ev. Step:

if energia <1 {game_restart();} //Nada que ver con esto.
if energia >3 {energia = 4 }


Ev. Draw:

at=0
repeat(energia)
{
draw_sprite(sprite_index,0,x,y+at);
at+=sprite_get_height(sprite_index)+1;
}



A ponerlo a prueba lo que hacia estaba bien, pero tenia un error minimo pero
muy vistoso, lo que hacia era, dibujar otro sprite y luego borrar el sprite,
lo cual no se veia bien, al cambiar el codigo del evento step seria as?:

Ev. Step:
if energia <1 {game_restart();}
if energia >3 {energia = 4 parado = true}
if energia <4 {parado = false}



Asi, solamente dibujara cuando sea verificada la variable energia, y no dibujara
y luego eliminara.

Texic te invito a hacer la prueba, porque es bueno tener argumentos en contra
para saber el porque de las cosas, de igual manera yo puedo estar equivocado, te invitaria
a hacer un debate  ;D, pero por el momento ya es tardisimo jaja.
Título: Re: Con cada click, una im?gen ??
Publicado por: SP_Christian en Junio 20, 2010, 04:22:01 PM
El evento draw es el ultimo de todos en ejecutarse.
Puesdes hacer todas las pirulas que quieras en los eventos de colision, en los steps....  que hasta que no se haya ejecutado todo, no se ejecutara el draw.

Excepto en el momnto que se crea una instancia, que se ejecuta el create y el draw seguidos y se traga los steps.