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
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.
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.
- 1. Libgdx Draw Line zwischen 2 Mausklicks
- 2. LibGDX - Akteure übereinander, vermeiden Sie zwei Draw Calls
- 3. Matplotlib in einem tkinter Canvas: Warum verhalten sich update() und draw() Methoden danach?
- 4. LibGDX und Java 8 Quellkompatibilität
- 5. Java LibGDX Entfernen Bullet Problem
- 6. Java-Methoden und Array
- 7. ruft libgdx SpriteBatch Anfang und Ende Methode mehrmals teuer?
- 8. Java Calling Methoden und Objekte
- 9. java Themen in libGDX
- 10. Überblenden ausblenden mit libgdx, sin und java
- 11. java - wie libGDX Checkbox
- 12. Java/Libgdx Auto Kachel
- 13. Java LibGDX Speicherleck
- 14. Java: Delegierungsmuster und geschützte Methoden
- 15. Java - Methoden und finale Variablen
- 16. Java: Generische Methoden und Zahlen
- 17. Klasse, Objekte und Methoden. Java
- 18. Java-Methoden - Aufrufen und Definieren
- 19. Java Swing: Ausführen von GUI Update-Methoden von separaten Klassenmethoden
- 20. Libgdx/java Ausdruck: m_type == b2_dynamicBody
- 21. Update RichTextBox mit statischen Methoden
- 22. (Java LibGDX) Wie ändere ich meine Texturen in LibGDX?
- 23. Java Libgdx Flip String Vertikal
- 24. LibGDX instanceof und dies
- 25. Leistung und Einschränkungsprobleme zwischen update() und batchUpdate() Methoden von NamedParameterJdbcTemplate
- 26. Java Methoden - Wie man eine Schleife mit Methoden implementiert
- 27. Text wird nicht in LibGdx angezeigt Java
- 28. Java libGDX verschiedene Größen von Animationsrahmen
- 29. Draw Schlagschatten
- 30. Draw ArcTo auf Leinwand
Also nur zur besseren Lesbarkeit? In der Hauptklasse zeichnen und aktualisieren wir in render Methode. –
Ja. Du könntest dein ganzes Spiel in die Renderfunktion schreiben, aber es ist keine gute Übung, dies zu tun. – Karprog