Que manera utilizan ustedes?
La velocidad de animacíon se controla en toda la escena y no por separado.
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
procedimiento CicloJuego;
variablesTiepoComienzo: Longint; //indicará cuando comenzo la escena
comenzar mientras GameRunning
hacer comenzar {se graba el tiempo de comienzo} TiempoComienzo = ObtenerTiempoActual;
{Obtener el estado de las entradas} LeerTeclado;
{realizar los pasos de la inteligencia artificial} RealizarInteligenciaArtificial;
{Actualizar posicion Sprites} ActualizarPosicionSprite;
{Testear Collision} CheckearColision;
{Realizar los sonidos} TocarSonidos;
{Realizar la musica} TocarMusica;
{Finalmente Volcar todo a pantall} VolcarPantalla;
{Determina si el ciclo del juego debe continuar} GameRunning = IsGameOver;
{Esta es la parte que verifica cuanto tiempo paso despues
del comienzo de la escena, si es menor al debido, la animacion será
demasiado rapida por lo que hay que detener todo hasta que el tiempo sea
el adecuado y concida con los FPS buscados} si ObtenerTiempoActual-TiempoComienzo < TiempoDeseado(FPS) entonces RetenerJuegoHasta(ObtenerTiempoActual-TiempoComienzo);
fin mientras;
fin procedimiento{nuestro sprite es así:}Sprite :
objeto Imagen:
Array[
0..
5]
of Imagen; //son las imagenes del sprite
AnimCount: integer; // el frame de la animacion actual
Frames: integer =
5;
metodo Dibujar(Donde: PantallaVirtual); //algun procedimiento que dibuja es sprite
fin conjunto{el procedimieto de UpdateSprite seria asi, tomando en cuent}procedimiento ActualizarPosicionSprite;
comenzar Sprite.Imagen[AnimCount].Dibujar(Buffer);
Animcount = AnimCount + 1;
si AnimCount = Frames entonces AnimCount =
0;
fin procedimiento <!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Como observas en el pseudo, Ni importa los FPS del sprite, sino los de la escena, me refiero a que la animacion debe ser controlada respecto a todo lo visible en la pantallay no por cada cosa que se ve.
Espero no ser confuso
me dijeron queno era buena idea hacerlo asi
De tu forma, Creas multiples animaciones en la pantalla y controlas su velocidad por separado lo que te complica las cosas.
Segun el pseudo anterior, Debes controlar la pantalla como una única animacion.