在JavaScript游戏开发中,Canvas与DOM的优缺点是什么?

在JavaScript游戏开发中,Canvas与DOM的优缺点是什么?,javascript,dom,canvas,Javascript,Dom,Canvas,与使用画布相比,在“纯”DOM中创建游戏有哪些优点和缺点 使用canvas,您可以执行旋转等操作,如果不使用一些“重”技巧,纯圆顶就无法执行这些操作。无论如何,dom速度更快,您可以在每个浏览器中使用它而不会出现问题。您必须考虑在游戏中使用什么,如果您只使用基本操作,请使用dom,否则请选择画布。看这里:。使用画布开发时,您将不得不使用GameLoop技术,这是非常痛苦的,因为您必须始终重新绘制所有元素 使用DOM进行开发时,您将能够只重新绘制已修改的对象,并将繁重的工作留给浏览器实现 如果您的

与使用画布相比,在“纯”DOM中创建游戏有哪些优点和缺点

使用canvas,您可以执行旋转等操作,如果不使用一些“重”技巧,纯圆顶就无法执行这些操作。无论如何,dom速度更快,您可以在每个浏览器中使用它而不会出现问题。您必须考虑在游戏中使用什么,如果您只使用基本操作,请使用dom,否则请选择画布。

看这里:。

使用画布开发时,您将不得不使用GameLoop技术,这是非常痛苦的,因为您必须始终重新绘制所有元素

使用DOM进行开发时,您将能够只重新绘制已修改的对象,并将繁重的工作留给浏览器实现

如果您的游戏每帧有一些修改,那么您可以使用DOM,否则请使用画布!快多了

画布 优点:

  • 可操作像素并应用滤波效果,便于图像处理
  • 对于小尺寸但游戏中有数百个元素非常有效
  • 许多游戏库可以使用canvas找到,比如box2dweb,还可以制作一些很棒的游戏,比如愤怒的小鸟
  • 缺点:

  • 它是无状态的,因此您必须在画布中记录元素的状态,并自行处理命中测试
  • 对于非常大的尺寸,效率较低,但游戏中只有少数元素
  • 能力强,责任心强。绘画的自由,使你必须负责所有的绘画工作人员。幸运的是,那里有很多库,比如cocos2d-html5、IvanK
  • DOM 优点:

  • 通过浏览器渲染,因此不易出错 缺点:

  • 只能用CSS制作简单的动画,这使得游戏不流畅
  • 不适合操作数百个DOM元素
    DOM真的更快吗?你确定?我在DOM中用2-3个移动元素制作了简单的游戏前引擎,非常糟糕。我从来没有尝试过canvas,但我在互联网上看到的例子非常快(比我看到的其他DOM游戏快)。我在哪里能读到这些?我绝对肯定。想想canvas必须处理大量数据的事实。嗯,不,使用canvas的常见原因是它比创建和修改1000个DOM元素要快。是的,如果你有1000个DOM元素,但我说的是一个简单的接口。正如我在回答中所说,如果你想使用简单的东西(包括图形),请选择dom,否则请选择画布。使用画布,你可以使用简单的x、y坐标系绘制线条、形状、文本等。您始终可以根据鼠标单击或其他用户输入事件重新绘制或擦除画布的一部分。和85年代的任何廉价图形卡一样,没有什么复杂的东西。有谁能提供一个链接来指导如何在没有第三方库的情况下使用DOM绘制任意线?我们可以比较一下代码。不是真的-如果你的游戏场景没有变化,并且编码正确-你不应该再次重画场景。在这方面,Canvas需要更多的游戏开发技术知识,你是对的!但我认为这不是一个很好的选择使用画布的情况下,不要使用任何一个。使用flash或使用本机。浏览器不是游戏引擎,也永远不会是。而且,没有好的方法来实现声音效果。Unity有一个网络播放器,根据我的经验,它工作得很好。2012年确实是一个黑暗的时代。时代变了,浏览器布局引擎变得更快了,JS可以完成CSS无法完成的复杂动画。另外,通过适当的编程,DOM可以处理游戏。如果您喜欢这种类型,还可以为物理引擎编写DOM渲染器脚本thing@K3v1n,真正的问题是为什么不使用canvas?@Pacerier canvas是低级别的,因此对于初学者(包括我)来说,在本地使用API是很复杂的。当然,存在用于管理渲染部件的库。