Ich habe Probleme beim Erstellen einer soliden Spielengine für meine OpenGL-Anwendung. Es ist ein Spiel, das aus mehreren Sprites mit einer Menge Action besteht.Eine solide (framerate stabile) Engine für OpenGL (ES) erstellen
Ich erstellte Objekte, die im Grunde alle meine Sprites sind. Ein anderes Objekt namens "gameEngine" durchläuft eine Reihe von Berechnungen jede Sekunde (ein Timer), was zu neuen Spielvariablen führt. Danach kennen die Sprite-Objekte ihre Zeichnungsdaten.
Das Problem ist, dass nach all meinen Zeichnungsdatum zu sammeln, die Zeichnung Ort genau im richtigen Moment in der Zeit nehmen soll, in einer stetigen Animation führt. Abhängig von der Komplexität der aktuellen Szene benötigen die Spielberechnungen eine unbestimmte Zeit. Die eigentliche Zeichnung findet also zu verschiedenen Zeitpunkten statt. Wie würde ich das verhindern?
Um zu klären, geht mein Ansatz so etwas wie:
// Every something of a second I call tick
-(void)tick
{
drawingData = gameEngine();
draw(drawingData);
}
Es muss für den Bau von Game-Engines wie dies eine bewährte Methode sein, ich bin nicht bewusst?
Eigentlich eine feste Schritt Spiel-Schleife ist in der Regel die bevorzugte Option, wenn Sie etwas wirklich einfach programmieren. –