Hola, haber si resolvéis mi duda, o se queda asi.
Para poder dibujar sprites animados en la room, sin que tenga asociado un objeto, yo lo hago desde el evento draw de otro objeto, pero no funcionan bien, no hace la reproducción, dado que cada vez que se hace draw del objeto principal, vuelve a poner el mismo frame del sprite.
Como lo haríais vosotros para poder poner sprites animados sin objeto??, es que asi ahorraría memoria creo yo, sin tanto objeto.
No he hecho la prueba, pero apostaría a que el sprite animado consume por si solo más memoria que tener un objeto adicional (sin sprite), es decir, pienso que el ahorro de memoria es despreciable.
Para evitar que DRAW dibuje el mismo frame en todos los pasos, se debe usar una variable extra para indicar la subimagen que se debe mostrar. Algo como:
CREATE[gml]
frame = 0
alarm[11] = 8[/gml]
Luego, para aumentar frame cada cierto tiempo se puede usar una alarma o un contador adicional
ALARM[11]
[gml]
if (frame > fmax)
frame = 0 //Reiniciar/ciclar la animación
if (animacion)
{
frame += 1 //Pasar al siguiente frame
alarm[11] = 8
}
[/gml]
DRAW
[gml]draw_sprite(spr_mi_sprite, frame, 100, 100)[/gml]
"fmax" sería una variable que indica el numero de frames del sprite. La variable "animacion" se pondría en 1 cuando se quisiera reproducir la animación, y en 0 para detenerla (mostrar la misma subimagen siempre). Un inconveniente es que si la animación se detiene y más tarde se quiere volver a reproducir habrá que volver a arrancar la alarma.
Gracias. Madre mia la que hay que montar. Creo mejor un objeto con el sprite y listo.
Gracias, pensaba que era mas facil