我知道有很多教程和网站都在回答“哪种更适合游戏应用?”这个问题。它们都说SVG不适合游戏应用,而canvas适合。但这让我感到困惑。
- 一旦将某些内容绘制到画布上,它就被遗忘了。
- 创建后可以更改SVG元素,而无需触摸游戏中的任何其他视觉项。
- Canvas没有内置动画功能
- SVG具有内置动画功能
所以假设我正在制作一个平台游戏。 我希望主角在美丽的背景下走过舞台。 在Canvas中,我要么必须重新创建她的整个碰撞框(重新绘制每个移动实体的位置),要么创建一个单独的画布元素并使用ctxChar、ctxBG、ctxItems
等。 与此相反,在SVG中,它是内置的。 我甚至可以在她的
标记中放置一个
标记来更改她的x位置(或通过js手动更改它),还可以再放置另一个
标记来更改她的精灵图像。 然后就不需要触摸背景了。
至于同时动画化一堆元素,我不明白在Canvas中这样做有什么快速的方法。 把SVG元素放在组内有什么问题吗? 它会比为所有实体重新绘制碰撞框的背景和实体本身慢吗?
编辑:我认为我的真正问题不是SVG能否工作,而是为什么人们认为它不能。