1

我正在画布上制作游戏,到目前为止,我的大部分绘画都是实心形状和弧线。但我想添加模糊和阴影等效果来创建发光和拖尾效果。

我的问题是,是否有一种无需外部库的好方法来缓存发光元素(玩家、敌人等),是否值得这样做而不是每次都重新创建效果?旋转也是如此。如果我在玩家旋转他们的船时重复绘制大约 40 个不同的角度,我应该只缓存这些计算吗?

我目前正在使用手动变换来旋转弧线结尾,而不是旋转上下文,因为我还不知道这是否比为许多屏幕元素及其不同角度重复旋转画布更有效

4

1 回答 1

0

模糊和阴影效果不包含在主画布库中,但您可以创建自己的库,或者您可以使用外部画布库(如easel.js),但有大量与 HTML5 相关的不同库<canvas>。您可以选择最适合您的。

关于模糊效果,您可以使用 Mario Klingeman stackblur javascript 实现:http ://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html 。它易于使用且速度超快。

对于发光效果,随机纹理生成的一种好方法是已经在 javascript 中实现的单纯形噪声算法:https ://gist.github.com/304522或此处的原始算法:http: //mrl.nyu.edu/~perlin /噪音/

对于最后一个问题,我建议您使用context saveandrestore功能获得更好的性能。它要快得多。

于 2012-07-18T06:31:12.520 回答