2010-02-15 118 views
32

¿Cuáles son las ventajas y desventajas de crear juegos en DOM "puro" en comparación con el uso de lienzo?¿Cuáles son las ventajas/desventajas de Canvas vs. DOM en el desarrollo de juegos de JavaScript?

+1

No utilizar ninguno de los dos. Usa flash o ve nativo. El navegador no es un motor de juegos y nunca lo será. –

+1

Además, no hay una buena manera de hacer efectos de sonido.Unity tiene un reproductor web que, en mi experiencia, funciona muy bien. – Deestan

+10

2012 fue un momento oscuro de hecho. –

Respuesta

1

Con lienzo puede realizar operaciones como la rotación que no se puede hacer con domo puro sin utilizar algunos trucos "pesados". De todos modos, el dominio es más rápido y puedes usarlo en todos los navegadores sin problemas. Debes pensar en qué vas a usar en el juego, si usarás solo operaciones básicas usa el dom o elige el lienzo.

+3

¿DOM es realmente más rápido? ¿Estas seguro? Hice un simple motor previo al juego con 2-3 elementos móviles en DOM y fue terrible. Nunca he probado el lienzo, pero los ejemplos que vi en Internet fueron bastante rápidos (más rápido que otros juegos DOM que vi). Donde puedo leer sobre eso? – budzor

+0

Estoy absolutamente seguro. Piense en el hecho de que el lienzo debe manipular una gran cantidad de datos. – mck89

+5

Um, no, la razón común para usar canvas es que es más rápido que crear y modificar miles de elementos DOM. – Nickolay

0

Cuando desarrolle con Canvas tendrá que utilizar la técnica GameLoop que es muy dolorosa porque tendrá que volver a dibujar todos los elementos todo el tiempo.

Cuando desarrolle con DOM podrá volver a dibujar solo los objetos que se han modificado y permitirá que el trabajo duro para la implementación del navegador.

si su juego tiene algunas modificaciones por cuadro, entonces puede usar el DOM; de lo contrario, utilice el lienzo por favor. ¡Es mucho más rápido!

+3

No es cierto, si la escena de su juego no tiene cambia y lo ha codificado correctamente; no debe volver a dibujar la escena. En este sentido, Canvas requiere un mayor conocimiento de las técnicas de desarrollo de juegos – cloakedninjas

+0

¡Sí, tienes razón! Pero creo que no es una buena elección usar lienzos para ese caso – melanke

7

lona pros:

  1. podían manipular píxeles y aplicar el efecto de filtro, tan fácil para el procesamiento de imágenes;
  2. muy eficiente para el pequeño tamaño pero cientos de elementos en el juego
  3. muchas bibliotecas de juego se puede conocer el uso de tela, como box2dweb, y podrían hacer que los juegos impresionantes como pájaro enojado

contras:

  1. es apátrida, por lo que debe registrar los estados de los elementos en el lienzo y manejar la prueba de golpe usted mismo.
  2. baja eficiencia para tamaño muy grande pero con uno algunos elementos en el juego
  3. gran capacidad, gran responsabilidad. la libertad de dibujar, trae en usted tiene que cargar de todo el personal de dibujo. Afortunadamente, hay muchas bibliotecas allí, como cocos2d-html5, IvanK.

DOM pros:

  1. renderizado por el navegador, por lo menos propenso a errores;

contras:

  1. podía hacer animación simple, con sólo CSS, que hace que el juego no es fluido;
  2. no es bueno para manipular cientos de elementos DOM;  
+1

veces han cambiado, los motores de diseño de navegadores se han vuelto más rápidos y JS puede hacer animaciones complejas que CSS no puede. Además, con la programación adecuada, DOM puede manejar juegos. También puede crear un procesador de DOM para motores de Física si está interesado en ese tipo de cosas – K3v1n

+0

@ K3v1n, la verdadera pregunta es ¿Por qué no lienzo? – Pacerier

+0

El lienzo de Pacerier está destinado a ser de bajo nivel, por lo tanto, usar el API de forma nativa es complejo para principiantes (incluyéndome a mí). De acuerdo, hay bibliotecas para administrar la parte de renderizado. – K3v1n

Cuestiones relacionadas