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