我正在编写一个游戏,它以以下方式在屏幕顶部显示分数:
canvasContext.fillStyle = "#FCEB77";
canvasContext.fillText(' Score: ' + Math.floor(score) + ' Lives: ' + Math.floor(lives) + ' other info: ' + Math.floor(otherInfo));
这很好。然后我想要在这段文本周围绘制一个框;因此,我尝试了以下内容:
canvasContext.rect(2, 1, 210, 30);
canvasContext.rect(2, 1, 80, 30);
canvasContext.rect(80, 1, 70, 30);
canvasContext.strokeStyle = "#FCEB77";
canvasContext.stroke();
当我运行游戏时,性能的影响是难以置信的。每一帧我都清除整个画布,但是绘制三个矩形似乎会降低性能。有人能告诉我为什么会这样,并且如何解决吗?
default path
上rect
的所有调用(这是我提到的状态机更改),并且调用stroke
将会自应用启动以来路径中的所有矩形描边。因为您正在运行动画,所以当每帧调用描边时,路径将有很多矩形需要绘制。演示对于其他人检查此效果非常有用。 - Gustavo Carvalho