-1

我有一个用于对象的电梯类,并将它们放在一个数组中。但是,我清除画布的准备功能适用于屏幕上除此对象之外的所有其他内容。我已经尝试移动重绘函数以及我调用它们的位置,但似乎没有任何问题可以解决它,如果这个对象不是,我看不出其他人会受到什么影响?

点击看看我的意思: 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);


}


}

我的循环:

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);
}
4

1 回答 1

2

你有太多的电梯都靠得很近,它们会无限产生。Prepare() 函数有效,在这里没有错。

尝试添加这个来限制电梯的数量:

function Level1()
{
    ...
    var Ele1 = new Elevator(canvasWidth - (canvasWidth - 90),canvasHeight - 50,40,20);
    if(Elevators.length<2){
        Elevators.push(Ele1);
    ....
}
于 2013-06-23T12:13:41.040 回答