想必你每秒重绘整个游戏场景30次(或多或少)
您需要重绘整个游戏场景,但首先要通过一些偏移来翻译Canvas上下文.
context.translate(x,y)正是你想要的.你要对使用的是还有阅读起来save()和restore()方法.
翻译上下文时,之后绘制的所有内容都会移动该数量.
所以你不断用50,50画一些东西(也许是一个敌人)drawImage(badguy,50,50).然后,玩家移动,从而改变了x的translate(因为玩家移动到右)为-1而不是0您还吸取敌人精灵与命令drawImage(badguy,50,50),但是当你画出它的敌人显示出来,好像它是在49,50因为context.translate(-1,0)命令在绘制之前移动了所有内容.
当然,当你进入表演时,你会希望确保你只画出可以在屏幕上看到的东西!如果你的水平远远低于水平context.translate(-2000,0),你不想再以50,50绘制物体,只有那些与可视区域相交的物体.