Da du frame based animation benutzst ist es klar, dass es auf anderen Rechnern unterschiedlich schnell läuft, da es auf jedem Rechner (abhängig von der Hardware) zu unterschiedlichen Renderzeiten kommt. Was du machen musst ist time based animation.
Die Kerndiee ist einen Timer mitlaufen zu lassen und dann inabhängigkeit von der Zeit zu animieren (Objekt bewegen). Damit garantierst du, dass es auf allen Rechnern gleich schnell läuft, da die Zeit auch überall konstant sein sollte
Ich hab mal in einem etwas älteren Projekt von mir gekramt um dir mal was vorzusetzen, was dir das ganze vllt verdeutlicht. Bei Fragen einfach melden.
Code:
//nodes[nodePointer]->time = 500
//Jedes mal wenn es wieder Zeit zu "updaten" danns etze neuen timestamp und update (nodePointer++ in dem Fall)
if((appCore->getGlobalTimer()->getTime() - timeStamp) > nodes[nodePointer]->time)
{
timeStamp = appCore->getGlobalTimer()->getTime();
nodePointer ++;
}
In dem Codebeispiel wird aller 500ms der node pointer um 1 verschobene (Spriteanimation).
_________________
Irrlicht - From Noob To Pro A Guideline
--
Sonstige Projekte, Blog :
http://www.rpdev.net