Max03 escribió:un sprite está compuesto por dos imágenes y necesito establecer cierto tiempo entre ambas para que cuando pulse la tecla de movimiento, la imágen del personaje quieto y la de cuando mueve la pierna se vean con cierto tiempo entre ambas, ya que sin tiempo entre ellas, parpadean ambas en la pantalla sin lógica.
No entiendo muy bien lo que quieres decir, ¿Podrías ser un poco mas claro?

Bueno, si te refieres a la animación, esta clase te puede ser útil:
//Aquí la clase
class Aniframe{
int frame;
int inicio;
float delay;
int ultima_act;
int * lista_anima;
int largo;
public:
Aniframe(int * l){
frame = 0;
inicio = SDL_GetTicks();
delay = 1000/15;
ultima_act = 0; //ultima
lista_anima = l;
/*
int *IntPtr = &lista_anima[0];
while( *IntPtr >= 0 ){
IntPtr++;
largo++;
};*/
largo = 0;
while(lista_anima[largo]>=0){
largo++;
};
};
~Aniframe(){};
int Frame_es(bool Reset = 0){
if (Reset){
this->frame = 0;
};
if ((SDL_GetTicks() - this->ultima_act) > this->delay){
this->frame ++;
if (this->frame >= this->largo){
this->frame = 0;
}
this->ultima_act = SDL_GetTicks();
};
return lista_anima[this->frame];
};
};
Por ejemplo, imagina que tienes una lista de las imágenes que utilizas, y estas tienen una animación entre ellas, asi que un ejemplo de su uso seria:
//tengo un array de Surfaces, o rectas... bueno...
int animacion[] = {1,2,1,2,1,2,-1}; //creo un array del numero de las imágenes que utilizare
//creo el objeto
Aniframe anima = Aniframe(animacion);
//estamos en el bucle del juego...
mi_imagen_actual = mi_lista_de_imagenes[ anima.Frame_es() ]
pero no creo que esto sea lo que buscas...
