Was sind Vor- und Nachteile beim Erstellen von Spielen in "reinem" DOM im Vergleich zur Verwendung von Canvas?Was sind die Vor- und Nachteile von Canvas vs. DOM bei der Entwicklung von JavaScript-Spielen?
Antwort
Mit Canvas können Sie Operationen ausführen, wie z. B. eine Rotation, die Sie mit reinem Dom nicht ausführen können, ohne einige "schwere" Tricks zu verwenden. Auf jeden Fall ist das Dom schneller und Sie können es in jedem Browser ohne Probleme verwenden. Sie müssen darüber nachdenken, was Sie in dem Spiel verwenden werden, wenn Sie nur grundlegende Operationen verwenden Sie das Dom, andernfalls wählen Sie die Leinwand.
DOM ist wirklich schneller? Bist du sicher? Ich machte eine einfache Pre-Game-Engine mit 2-3 beweglichen Elementen in DOM und es war schrecklich. Ich habe noch nie Canvas ausprobiert, aber Beispiele, die ich im Internet gesehen habe, waren ziemlich schnell (schneller als andere DOM-Spiele, die ich gesehen habe). Wo kann ich darüber lesen? – budzor
Ich bin mir absolut sicher. Denken Sie daran, dass Canvas eine große Menge an Daten manipulieren muss. – mck89
Ähm, nein, der häufigste Grund für die Verwendung von Canvas ist, dass es schneller ist als das Erstellen und Ändern von 1000en von DOM-Elementen. – Nickolay
Schauen Sie hier: Why Canvas is not an obvious choice for web games.
Wenn Sie mit Canvas entwickeln, müssen Sie die GameLoop-Technik verwenden, die sehr schmerzhaft ist, da Sie alle Elemente ständig neu zeichnen müssen.
Wenn Sie mit DOM entwickeln, können Sie nur die Objekte neu zeichnen, die geändert wurden und die harte Arbeit für die Browser-Implementierung ermöglichen.
Wenn Ihr Spiel ein paar Änderungen pro Frame hat, dann können Sie das DOM benutzen, ansonsten benutzen Sie bitte den Canvas! Es ist so viel schneller!
Nicht wahr- wenn deine Spielszene keine hat Änderungen und Sie haben es richtig codiert - Sie sollten die Szene nicht erneut zeichnen. In dieser Hinsicht erfordert Canvas mehr Wissen über Spielentwicklungstechniken – cloakedninjas
Ja, Sie haben Recht! Aber ich denke, es ist keine gute Wahl mit Canvas für diesen Fall – melanke
Leinwand Profis:
- Pixel manipulieren könnte und Filtereffekt anwenden, so leicht für die Bildverarbeitung;
- sehr effizient für kleine Größe, aber Hunderte von Elementen im Spiel
- viele Bibliotheken für Spiel gefunden Leinwand verwenden könnten, wie box2dweb und könnten awesome Spiele wie böser Vogel
Nachteile machen:
- es ist zustandslos, also müssen Sie die Zustände der Elemente in der Zeichenfläche aufzeichnen und den Treffertest selbst durchführen.
- wenig effizient für sehr große Größe, aber mit ein paar Elementen im Spiel
- große Fähigkeit, große Verantwortung. die Freiheit zu zeichnen, bringt ein, dass Sie alle ZeichnerInnen in Rechnung stellen müssen. Zum Glück gibt es dort viele Bibliotheken wie cocos2d-html5, IvanK.
DOM Profis:
- Rendering durch den Browser, so dass weniger fehleranfällig;
Nachteile:
- konnte nur mit CSS einfacher Animation tun, dass das Spiel nicht fließend macht;
- nicht gut für die Manipulation von Hunderten von DOM-Elementen;
Zeiten haben sich geändert, Browser Layout Engines wurden schneller und JS kann komplexe Animationen, die CSS nicht tun können. Außerdem kann DOM bei entsprechender Programmierung mit Spielen umgehen. Sie können auch einen DOM-Renderer für Physik-Engines erstellen, wenn Sie auf so etwas stehen – K3v1n
@ K3v1n, Die eigentliche Frage ist Warum nicht Leinwand? – Pacerier
@Pacerier Canvas ist als Low Level gedacht, daher ist die Verwendung der API nativ für Anfänger (einschließlich mir) komplex. Zugegeben, es gibt Bibliotheken, um den Rendering-Teil zu verwalten. – K3v1n
- 1. Was sind die Vor- und Nachteile von Eclipse vs Netbeans vs andere für j2me Entwicklung?
- 2. Was sind die Vor-/Nachteile von py2exe
- 3. Was sind die Vor- und Nachteile der Verwendung von Global.asax?
- 4. Was sind die Vor- und Nachteile der Verwendung von SQLDataReader?
- 5. Was sind die Vor- und Nachteile der Verwendung von OpenID?
- 6. Was sind die Vor- und Nachteile der Verwendung von Parameter
- 7. newid() vs newsequentialid() Was sind die Unterschiede/Vor- und Nachteile?
- 8. Was sind die Vor- und Nachteile von asset_packager und Jammit?
- 9. Was sind die Vor- und Nachteile von Design/Code-Reviews?
- 10. Was sind die Vor- und Nachteile von Perl für OOP?
- 11. Was sind die Vor- und Nachteile von Seam over Spring?
- 12. OcMock vs OcMockito - Was sind Vor- und Nachteile
- 13. Was sind Vor- und Nachteile der Verwendung von Git-Svn?
- 14. Was sind die Vor- und Nachteile der Verwendung von Protocol vs Vererbung?
- 15. Was sind die Vor- und Nachteile von git VS Mercurial mit Xcode für die iOS-Entwicklung in großen Teams?
- 16. Vor- und Nachteile der Verwendung von ReactJS
- 17. Was sind die Vor- und Nachteile der Intensivstation?
- 18. Was sind die Vor- und Nachteile der Mehrfachvererbung?
- 19. Was sind die Vor-/Nachteile von 64-Bit-.NET?
- 20. Webdienst VS. Aspx Seiten: Vor- und Nachteile
- 21. Was sind die Vor- und Nachteile von mongoid des has_and_belongs_to_many mit der Verwendung von inverse_of
- 22. Was sind Vor-/Nachteile von Push/Pull-Datenflussmodellen?
- 23. Was sind die Vor- und Nachteile der Verwendung von separaten Benutzermodellen für normale Benutzer und Administratoren?
- 24. Was sind die Nachteile von reset_session vs session [: user_id] = nil?
- 25. Was sind die Nachteile von Stackless Python?
- 26. Was sind die Vor- und Nachteile des Eigenschaftsmusters?
- 27. Was sind die Vor- und Nachteile einer 100% HTTPS-Site?
- 28. Was sind die Vor- und Nachteile der JavaScript-Bibliotheken von JQuery und Glow?
- 29. Was sind die Vor- und Nachteile der Verwendung der zwei verschiedenen Programmierstile von CGI.pm mit Perl?
- 30. Was sind Vor- und Nachteile der Verwendung von Socket für IPC zwischen Java und C++?
Verwenden Sie auch keines. Verwenden Sie Flash oder gehen Sie nativ. Der Browser ist keine Spiel-Engine und wird es nie sein. –
Auch gibt es keinen guten Weg, Soundeffekte zu tun.Unity hat einen Web-Player, der nach meiner Erfahrung gut funktioniert. – Deestan
2012 war tatsächlich eine dunkle Zeit. –