我有一个用于对象的Elevator类,我将它们放在一个数组中。 但是我清除画布的Prepare函数适用于除此对象之外的屏幕上的所有其他内容。我试过移动重新绘制的函数和我调用它们的地方,但似乎没有什么可以解决它,如果没有这个对象,我看不到其他人会受到什么影响?
点击查看我的意思: http://www.taffatech.com/Platformer.html
function drawElevators()
{
for (var i=0;i<Elevators.length;i++)
{
Elevators[i].y--;
ctx.fillStyle = "grey";
ctx.fillRect(Elevators[i].x,Elevators[i].y,Elevators[i].width,Elevators[i].height);
}
}
My Loop:
function Loop(){
Prepare();
movePlayer();
if(level == 1)
{
Level1();
}
else if(level == 2)
{
Level2();
}
else if (Level ==3)
{
Level3();
}
else
{
Level4;
}
if(ElevatorOn == true)
{
drawElevators();
}
checkCol();
drawPlayer();
requestAnimFrame(Loop);
}
答案 0 :(得分:2)
你有太多的电梯都靠得很近,它们无限地产生。 Prepare()函数在这里工作并没有错。
尝试添加此项以限制电梯数量:
function Level1()
{
...
var Ele1 = new Elevator(canvasWidth - (canvasWidth - 90),canvasHeight - 50,40,20);
if(Elevators.length<2){
Elevators.push(Ele1);
....
}