Octubre 01, 2015, 06:03:31 AM Ultima modificación: Octubre 01, 2015, 06:19:43 AM por ian12
Hola! una duda..

Quisiera saber como podría hacer para que al colocar en el evento draw, que se dibuje un sprite con animación colocando "-1" la animación se detenga en cierto punto y el sprite quede así (sin bucle).


Es para cuando el jugador ve algo que le llama la atención y aparezca el icono con una animación, permanezca sin cambiar hasta que el jugador se aleje de la zona y desaparezca, así es ahora:


//Draw event

if position_meeting(obj_player.x+10,obj_player.y, obj_dooralter1)
{
draw_sprite(spr_curiosity,-1,obj_player.x+10,obj_player.y-5)
}


Gracias!

Puedes hacer una variable que empiece en 0 y la aumentas en 1 cada step y en lugar de dibujar el -1, dibujas la subimagen con ese contador, y una condición para que cuando llegue a la subimagen final ya no aumente el contador.


if position_meeting(obj_player.x+10,obj_player.y, obj_dooralter1)
{
  if(contador<10) contador++;
  draw_sprite(spr_curiosity,contador,obj_player.x+10,obj_player.y-5);
}


igual y reinicias el contador al final para que la proxima vez vuelva a empezar desde la primer subimagen.
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

Cita de: p34 en Octubre 01, 2015, 09:02:29 AM
Puedes hacer una variable que empiece en 0 y la aumentas en 1 cada step y en lugar de dibujar el -1, dibujas la subimagen con ese contador, y una condición para que cuando llegue a la subimagen final ya no aumente el contador.


if position_meeting(obj_player.x+10,obj_player.y, obj_dooralter1)
{
  if(contador<10) contador++;
  draw_sprite(spr_curiosity,contador,obj_player.x+10,obj_player.y-5);
}


igual y reinicias el contador al final para que la proxima vez vuelva a empezar desde la primer subimagen.



El problema ahí es, que creo que sería más trabajo a largo plazo según cada objeto que le llame la atención, creo que lo dejaré hasta ahí por ahora. Talvez con un objeto que siga al personaje y dibuje la animación en base a una variable global podría ser más práctico.

Igual gracias!
:P

#3 Octubre 01, 2015, 04:34:04 PM Ultima modificación: Octubre 01, 2015, 04:40:37 PM por fasst007
Te hago unas preguntas:

1) El obj_player ¿siempre avanza de izquierda a derecha? porque si no es así, este código no funcionaría bien cuando se acerca al objeto desde la derecha avanzando hacia la izquierda.

2) A qué te refieres con: "sería más trabajo a largo plazo según cada objeto que le llame la atención."
Porque si te refieres a que hay otros objetos además de "obj_dooralter1" que le llamen la atención entonces creo que la solución (no lo he probado) sería crear un objeto vacío padre llamado "capta_atencion" y definir los múltiples objetos de interés como hijos de este. Luego en el código cambiar  "obj_dooralter1" por "capta_atencion" y listo.

3) Habría que definir un "else" en ese if que inicialice el contador a 0 (cero).