html5画布缓存切片

时间:2017-05-16 19:11:12

标签: javascript html5 canvas

我正在 HTML5 Canvas 制作MMO游戏。 它是等距,它有瓷砖和墙

所以我需要为慢速计算机/移动设备优化游戏。
为此,我想缓存我的瓷砖和墙壁:

绘制后,它们是静态的/不是动画的

因此我不需要每次重绘它们。


我也不想使用两个(或更多)<canvas>个对象,所以我想使用我用<canvas>我用来requestAnimationFrame绘制的相同mscorlib.dll元素项目/实体。

我是alerdy试图将瓷砖和墙壁绘制到与可见画布具有相同宽度/高度的屏幕外画布,然后每次在可见画布上绘制它,

但是可见画布使用了页面的分辨率,因此在高分辨率(无论是我当前的屏幕: 1920x1080 )中,使用或不使用缓存的CPU使用率都相同( 1920x1080

我应该如何正确地执行此操作,以便减少CPU使用率并使用内存?没有使用两幅画布是不可能的?

1 个答案:

答案 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);

第二个矩形是高和宽的两倍。