bgY += ( enemySpeed + heroSpeed ) / 2;
ctx.drawImage( bg, bgX, bgY - gameHeight );
ctx.drawImage( bg, bgX, bgY );
if( bgY > gameHeight )
{
bgY = 0;
}
我正在使用上面的代码在画布上绘制背景。
除了绘制新图像时的小延迟外,它的效果很好。就在它被绘制之前,玩家可以看到背景在顶部没有一秒钟的图像。 (这不是我的主要问题,但你也可以提供帮助)
无论如何,现在主要问题是:
我不确定,但我认为当图像移动到画布下方时,它们实际上并没有被删除。这不会减慢游戏速度/在一段时间后表现不佳吗?
有没有办法阻止这种情况?
答案 0 :(得分:0)
关于你的第一个问题:if语句应该在调用drawImage
之前,而不是之后。您也可以通过模运算替换它,该运算应该保存所有相关情况。
bgY += ( enemySpeed + heroSpeed ) / 2;
bgY %= gameHeight;
ctx.drawImage( bg, bgX, bgY - gameHeight );
ctx.drawImage( bg, bgX, bgY );