Quali sono i vantaggi e gli svantaggi della creazione di giochi nel DOM "puro" rispetto all'uso della tela?Quali sono i vantaggi/svantaggi di Canvas vs. DOM nello sviluppo di giochi JavaScript?
risposta
Con il canvas è possibile eseguire operazioni come la rotazione che non è possibile eseguire con la dome pura senza utilizzare trucchi "pesanti". In ogni caso, dom è più veloce e puoi usarlo in ogni browser senza problemi. Devi pensare a cosa userai nel gioco, se usi solo le operazioni di base usa il dom, altrimenti scegli la tela.
DOM è davvero più veloce? Sei sicuro? Ho creato un semplice motore di pre-gioco con 2-3 elementi mobili nel DOM ed è stato terribile. Non ho mai provato la tela, ma gli esempi che ho visto su internet sono stati abbastanza veloci (più velocemente di altri giochi DOM che ho visto). Dove posso leggere a riguardo? – budzor
Sono assolutamente sicuro. Pensa al fatto che la tela deve manipolare una grande quantità di dati. – mck89
Um, no, il motivo comune per usare canvas è che è più veloce della creazione e modifica di 1000s di elementi DOM. – Nickolay
Guarda qui: Why Canvas is not an obvious choice for web games.
Quando sviluppi con Canvas dovrai usare la tecnica GameLoop che è molto dolorosa perché dovrai ridisegnare tutti gli elementi tutto il tempo.
Quando sviluppi con DOM sarai in grado di ridisegnare solo gli oggetti che sono stati modificati e consentirà il duro lavoro per l'implementazione del browser.
se il gioco ha qualche modifica per frame, allora puoi usare il DOM, altrimenti usa la tela per favore! È molto più veloce!
Non vero- se la tua scena di gioco non ha cambia e l'hai codificato correttamente - non dovresti ridisegnare di nuovo la scena. A questo proposito Canvas richiede una maggiore conoscenza delle tecniche di sviluppo del gioco – cloakedninjas
Sì, hai ragione! Ma penso che non sia una buona scelta usare la tela per quel caso – melanke
tela pro:
- potrebbe manipolare pixel e applicare effetto filtro, così facile per l'elaborazione delle immagini;
- molto efficiente per le piccole dimensioni, ma centinaia di elementi nel gioco
- molte librerie per il gioco potrebbe essere trovato utilizzando tela, come ad esempio box2dweb, e potrebbe fare fantastici giochi quali uccelli arrabbiati
contro:
- è stateless, quindi è necessario registrare gli stati degli elementi nell'area di disegno e gestire da solo l'hit test.
- basso efficiente per dimensioni molto grandi ma con uno pochi elementi nel gioco
- grande abilità, grande responsabilità. la libertà di disegnare, porta a farvi carico di tutto il personale di disegno. Fortunatamente, ci sono molte librerie lì, come ad esempio cocos2d-html5, IvanK.
DOM pro:
- resa dal browser, quindi meno soggetto a errori;
contro:
- Potrebbe fare semplice animazione solo con i CSS, che rende il gioco non fluente;
- non va bene per la manipolazione di centinaia di elementi DOM;
volte sono cambiati, i motori di layout del browser sono diventati più veloci e JS può fare animazioni complesse che i CSS non possono. inoltre, con una programmazione corretta, il DOM può gestire i giochi. Puoi anche creare script su un renderer DOM per i motori di fisica se ti trovi in quel tipo di cose – K3v1n
@ K3v1n, La vera domanda è Perché non tela? – Pacerier
@Pacerier canvas è pensato per essere di basso livello, quindi l'utilizzo dell'API nativamente è complesso per i principianti (incluso me). Certo, ci sono librerie per gestire la parte di rendering. – K3v1n
- 1. Giochi PhoneGap, canvas e javascript lenti
- 2. Sviluppo di giochi per Iphone
- 3. per lo sviluppo di giochi Android?
- 4. Quali sono i pro e i contro di HTML5 Canvas vs. SVG + Raphael.js?
- 5. Quali caratteristiche linguistiche sono necessarie per lo scripting di giochi?
- 6. Quali sono i vantaggi di LLDB rispetto a GDB nello sviluppo iOS?
- 7. ReactNative VS NativeScript: quali sono i vantaggi?
- 8. jQuery $ questo vs $ (questo) nello sviluppo di plug-in
- 9. Introduzione allo sviluppo di giochi
- 10. Strumenti di sviluppo di giochi HTML 5
- 11. Formati di file 3D per i giochi
- 12. Strano comportamento di JavaScript nello strumento di sviluppo di Chrome
- 13. Quali sono tutte le restrizioni di sviluppo Apple per iPhone
- 14. Buone pratiche nello sviluppo dell'API JavaScript
- 15. Quali formati di immagine sono supportati da CANVAS in html5?
- 16. librerie di canvas javascript potenti
- 17. Quali sono i problemi comuni di sviluppo, le insidie e i suggerimenti?
- 18. Quali elementi DOM non sono elementi HTML?
- 19. Canvas vs DOM - Qual è il metodo di visualizzazione delle immagini più efficiente in HTML5?
- 20. Quali sono i vantaggi di salesforce.com e Apex come piattaforma di sviluppo di applicazioni?
- 21. Quali sono i limiti della compilazione di dart in javascript?
- 22. Quali sono i vantaggi di JRebel?
- 23. Quali sono gli intervalli di coordinate nello spazio colore CIELAB?
- 24. Grid vs. Canvas
- 25. Quali sono le buone tecniche per gestire lo stato e il cambiamento di stato nello sviluppo del gioco?
- 26. Esempi di giochi facili per Android
- 27. Perdite di memoria Javascript: Albero DOM staccato
- 28. I vantaggi dinamici di Objective-C nello sviluppo del cacao?
- 29. Quali sono i vantaggi e le sfide dello sviluppo di app web e app desktop?
- 30. Quali sono i possibili tipi di dati per la funzione canvas toDataURL()?
Non utilizzare neanche. Usa il flash o vai nativo. Il browser non è un motore di gioco e non lo sarà mai. –
Inoltre, non c'è un buon modo per fare effetti sonori.Unity ha un web player che, secondo la mia esperienza, funziona bene. – Deestan
Il 2012 era davvero un periodo buio. –