我正在为像素网格上的精灵制作动画。我有几个选择,每个都有优点和缺点。我有相当多的 javascript 经验(六年),但没有这种经验。问题是我不知道每个选项会有多贵。
精灵需要渲染得非常快,并且足够便宜以在运行碰撞检测时至少同时运行五个。
理想情况下,我想在包装器内使用元素网格,将颜色和 alpha 通道渲染到多维数组中的每个元素。这里的主要优点是我可以运行逐像素碰撞检测并点击精灵的透明部分。对于任何基于图像的精灵,即使我点击透明像素,onClick 事件也会触发(我必须做很多工作才能通过透明像素传递点击,而且可能非常昂贵)。
下一个选项是使用 css sprites。css-tricks.com/css-sprites/ 这很容易,但如前所述,onClicks 不会通过透明像素。我可能可以强制它,但同样,它可能很昂贵,并且需要很多时间来实现。
另一种选择是动画 gif,但它们很大,色彩部门有限,而且很难控制动画。我宁愿不去那里。
然后是 html5 canvas 元素,我不太了解它,如果可能的话,我想远离它。我不知道我的任何代码甚至会如何与 canvas 元素相关,而且我怀疑它是否会长期满足我的需求。
那么哪个性能最好呢?第一个(也是最可取的)是一个可行的选择吗?还是我错过了什么?