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

bud*_*zor 35 javascript dom canvas

与使用canvas相比,在'纯'DOM中创建游戏有哪些优缺点?

小智 10

帆布 职业:

  1. 可以操纵像素并应用滤镜效果,便于图像处理;
  2. 对于小尺寸但游戏中有数百种元素非常有效
  3. 许多游戏库可以使用canvas找到,例如box2dweb,并且可以制作很棒的游戏,比如愤怒的小鸟

缺点:

  1. 它是无状态的,所以你必须在画布中记录元素的状态,并自己处理命中测试.
  2. 对于非常大的尺寸效率低,但游戏中只有一些元素
  3. 能力强,责任心强.绘画的自由,带来你必须负责所有绘图人员.幸运的是,那里有很多库,比如cocos2d-html5,IvanK.

DOM 专业人士:

  1. 由浏览器呈现,因此不易出错;

缺点:

  1. 可以用CSS做简单的动画,这会让游戏不流畅;
  2. 没有好处理数百个DOM元素;  

  • 时代变了,浏览器布局引擎变得更快,JS 可以做 CSS 做不到的复杂动画。此外,通过适当的编程,DOM 可以处理游戏。如果您喜欢这种事情,您还可以为物理引擎编写 DOM 渲染器 (2认同)

mck*_*k89 0

使用画布,您可以执行诸如旋转之类的操作,而如果不使用一些“重型”技巧,则无法使用纯圆顶来执行这些操作。不管怎样,dom 更快,你可以在每个浏览器中使用它,没有任何问题。你必须考虑你要在游戏中使用什么,如果你只使用基本操作,请使用 dom,否则选择画布。

  • 嗯,不,使用 canvas 的常见原因是它比创建和修改 1000 个 DOM 元素要快。 (8认同)
  • DOM 真的更快吗?你确定?我用 DOM 中的 2-3 个移动元素制作了简单的游戏前引擎,但效果很糟糕。我从未尝试过画布,但我在互联网上看到的示例相当快(比我看到的其他 DOM 游戏更快)。我在哪里可以读到相关内容? (3认同)