画布重绘不起作用

时间:2013-06-23 11:53:28

标签: javascript canvas

我有一个用于对象的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);
}

1 个答案:

答案 0 :(得分:2)

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

尝试添加此项以限制电梯数量:

function Level1()
{
    ...
    var Ele1 = new Elevator(canvasWidth - (canvasWidth - 90),canvasHeight - 50,40,20);
    if(Elevators.length<2){
        Elevators.push(Ele1);
    ....
}