我正在 HTML5 Canvas 制作MMO游戏。 它是等距,它有瓷砖和墙。
所以我需要为慢速计算机/移动设备优化游戏。
为此,我想缓存我的瓷砖和墙壁:
绘制后,它们是静态的/不是动画的
因此我不需要每次重绘它们。
我也不想使用两个(或更多)<canvas>
个对象,所以我想使用我用<canvas>
我用来requestAnimationFrame
绘制的相同mscorlib.dll
元素项目/实体。
我是alerdy试图将瓷砖和墙壁绘制到与可见画布具有相同宽度/高度的屏幕外画布,然后每次在可见画布上绘制它,
但是可见画布使用了页面的分辨率,因此在高分辨率(无论是我当前的屏幕: 1920x1080 )中,使用或不使用缓存的CPU使用率都相同( 1920x1080 )
我应该如何正确地执行此操作,以便减少CPU使用率并使用内存?没有使用两幅画布是不可能的?
答案 0 :(得分:0)
您可以尝试在第一次绘制地图后将静态元素保存为图像,然后调用图像。如果你在绘制地图时涉及很多元素,那将会更快。
如果在游戏过程中没有任何过度抽取这些静态元素,则无需再次绘制。牢记这一点
编辑:或者您可以绘制较小的对象并缩放它们(refrence)
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.strokeRect(5,5,25,15);
ctx.scale(2,2);
ctx.strokeRect(5,5,25,15);
第二个矩形是高和宽的两倍。