我正在创建我的第一个 HTML5 游戏。这是一款类似于《战争部长/传奇之战》的游戏。它是一款基于等角瓦片的 MMORTS 游戏。现在,当我构建游戏时,我试图考虑资源管理和速度;然而,我遇到了一个问题。
我有一个名为
而且,我只需要在瓦片或建筑物以任何方式更新时才需要调用
但是,如果我想让这些建筑物或瓦片拥有动画呢?
例如,我向游戏中添加了一个名为
我该怎么办?最好是不要包含动画吗?
这就是游戏的样子,这可能有助于解决问题的背景:
(抱歉图片很杂乱...我正在进行一些测试)
我有一个名为
renderMap
的方法,它遵循以下步骤:
renderMap
加载当前地图块。地图块目前被定义为 6x6 的网格。renderMap
循环遍历每个单独的瓦片,从升序 X、Y 到降序 X、Y,并将该瓦片绘制到等角网格上。在将瓦片绘制到屏幕上的同时,它还会检查是否在该瓦片上有建筑,并在瓦片上方绘制该建筑。
renderMap
必须调用 drawImage
约 36 次,如果该函数每帧都被调用,它真的会变得非常耗费资源。所以,我让 renderMap
绘制到内存画布上,然后每帧绘制到主画布上。这样,36 次调用 drawImage
就减少到了每帧只有 1 次。而且,我只需要在瓦片或建筑物以任何方式更新时才需要调用
renderMap
。例如,如果加载了一个新的地图块并且我们需要加载新的等角地图。但是,如果我想让这些建筑物或瓦片拥有动画呢?
例如,我向游戏中添加了一个名为
oil well
的建筑物。如果油井位于玩家客户端上加载和显示的 6x6 块中的任何一个瓦片上,它将迫使游戏不得不调用 renderMap
更多次,以渲染该单个建筑物的新图像(因为动画)。所以,我最终会渲染额外的 35 个瓦片,只为了更新那 1 个建筑物。我该怎么办?最好是不要包含动画吗?
这就是游戏的样子,这可能有助于解决问题的背景:
(抱歉图片很杂乱...我正在进行一些测试)