2010-02-15 14 views
32

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?

+1

Non utilizzare neanche. Usa il flash o vai nativo. Il browser non è un motore di gioco e non lo sarà mai. –

+1

Inoltre, non c'è un buon modo per fare effetti sonori.Unity ha un web player che, secondo la mia esperienza, funziona bene. – Deestan

+10

Il 2012 era davvero un periodo buio. –

risposta

1

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.

+3

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

+0

Sono assolutamente sicuro. Pensa al fatto che la tela deve manipolare una grande quantità di dati. – mck89

+5

Um, no, il motivo comune per usare canvas è che è più veloce della creazione e modifica di 1000s di elementi DOM. – Nickolay

0

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!

+3

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

+0

Sì, hai ragione! Ma penso che non sia una buona scelta usare la tela per quel caso – melanke

7

tela pro:

  1. potrebbe manipolare pixel e applicare effetto filtro, così facile per l'elaborazione delle immagini;
  2. molto efficiente per le piccole dimensioni, ma centinaia di elementi nel gioco
  3. molte librerie per il gioco potrebbe essere trovato utilizzando tela, come ad esempio box2dweb, e potrebbe fare fantastici giochi quali uccelli arrabbiati

contro:

  1. è stateless, quindi è necessario registrare gli stati degli elementi nell'area di disegno e gestire da solo l'hit test.
  2. basso efficiente per dimensioni molto grandi ma con uno pochi elementi nel gioco
  3. 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:

  1. resa dal browser, quindi meno soggetto a errori;

contro:

  1. Potrebbe fare semplice animazione solo con i CSS, che rende il gioco non fluente;
  2. non va bene per la manipolazione di centinaia di elementi DOM;  
+1

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

+0

@ K3v1n, La vera domanda è Perché non tela? – Pacerier

+0

@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

Problemi correlati