我正计划使用 javascript/canvas 编写游戏,我只有一个问题:关于加载图像与仅使用 canvas 的方法绘图相比,我应该考虑什么样的性能考虑因素。因为我的游戏将使用非常简单的几何图形(圆形、正方形、直线),所以这两种方法都易于使用。我还计划在游戏中实现一个简单的粒子引擎,所以我希望能够在不影响性能的情况下绘制很多小物体。
想法?
最佳答案
如果您正在绘制带有实心填充的简单形状,那么程序化绘制它们是最适合您的方法。
如果您要使用笔触、渐变填充和其他对性能敏感的化妆品绘制更详细的实体,您最好使用图像 Sprite 。程序生成图形并不总是高效的。
两者兼而有之。当您的应用程序启动时,在 Canvas 上按程序绘制图形实体一次。之后,您可以通过绘制它们的副本来重复使用相同的 Sprite ,而不是重复生成相同的阴影、渐变和笔触。
如果您选择绘制 Sprite ,您应该阅读一些 tips and optimization techniques on this thread .
我个人的建议是只画形状。我了解到,如果您打算改用图像,那么您使用得越多,速度就越慢,并且您最终需要进行离屏渲染的可能性就越大。
关于performance - HTML5 Canvas 性能 : Loading Images vs Drawing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3488441/