使用HTML5的Canvas进行预渲染的最佳方式?

时间:2012-11-14 20:33:43

标签: html5 html5-canvas graphics2d prerender

我试图为谷歌的GWT做一个游戏开发API来制作Canvas游戏,我对这个预渲染问题提出了一个问题。

首先:在使用removeChild()RootPanel.Remove()(使用GWT)后,我不完全确定browser / Javascript / GWT如何管理已删除的画布,如果其数据保留在内存中,或者甚至是从内存中删除它的正确方法。

因此,我所提出的解决方案是使用多个(根据需要)大型隐藏画布作为预渲染调色板,并使用drawImage()魔术跳转绘制在主要上下文中的预渲染图像,并具有我自己插入,移除,空格等问题。

这是最好的解决方案吗?或者我应该尝试使用一个小画布来预览每个小图像和纹理?或者我应该尝试一些完全不同的东西吗?

提前致谢,对不起我的拼写。

1 个答案:

答案 0 :(得分:1)

使用画布预渲染您的物品是一个好主意,但它并不总是最佳选择。 如果你的物品很复杂(有渐变,阴影和视觉效果),那么它会很好。但是如果你的项目很简单(图像,多边形,简单的贝塞尔曲线......),你的帧率不会增加但会减少(因为drawImage)。然后更好地实时渲染。

从我的实验中,你不会通过使用几个小画布(可能是少量内存)而失去性能,但它比大画布(如面向对象的场景)更容易管理。 如果您的商品有时会发生变化,您可以轻松管理临时画布的尺寸。

希望得到这个帮助。