2016-08-29 2 views
0

Menschen schreiben in ihren Spielerklassen in der Regel die Methoden "draw (SpriteBatch batch)" und "update (float deltaTime)". Warum schreiben sie nicht einfach "render (SpriteBatch batch, float deltaTime)"? Wegen der Lesbarkeit? Ich meine, warum machen sie zwei Methoden? Sie können in einer einzigen Methode tun.Java LibGDX Update und Draw Methoden

Antwort

1

Lesbarkeit und einfache Aktualisierung/Änderung ist ein Grund.

Aber es gibt auch logistische Gründe. Bevor Sie mit dem Zeichnen beginnen, möchten Sie sicher sein, dass Ihr gesamter Spielstatus auf dem neuesten Stand ist. Daher ist alles, was auf dem Bildschirm angezeigt wird, so aktuell wie möglich. Wenn Sie das Aktualisieren und Rendern für jedes Objekt in eine Methode einfügen, sind Objekte, die zuerst aktualisiert und gezeichnet werden, möglicherweise nicht mehr aktuell, verglichen mit Objekten, die später aktualisiert werden und sich auf den Status früherer Objekte auswirken. Wenn das Aktualisieren und Zeichnen jedoch getrennt sind, können Sie das gesamte Spiel aktualisieren und dann das gesamte Spiel zeichnen.

Und wenn Ihr Spiel Physik verwendet, ermöglicht die Trennung von Aktualisierung und Zeichnung, dass Sie Ihre Welt bei fixed timestep (mit einer anderen Rate als die Zeichnung) aktualisieren, um sicherzustellen, dass das Spiel von der Bildrate nicht beeinflusst wird.

1

Das liegt daran, dass Sie zwischen Ihrer Spiellogik und Ihrer Renderfunktion unterscheiden möchten. Es ist einfacher zu lesen und hilft auch, wenn Sie Ihre Spiellogik öfter aktualisieren möchten als Ihre Renderlogik.

+0

Also nur zur besseren Lesbarkeit? In der Hauptklasse zeichnen und aktualisieren wir in render Methode. –

+1

Ja. Du könntest dein ganzes Spiel in die Renderfunktion schreiben, aber es ist keine gute Übung, dies zu tun. – Karprog