-1
我有一个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);
}
}
我的循环:
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台电梯等什么呢?我怎么能这样做,所以对象刚上升(y--),然后重新绘制对象? –
您已重新绘制该对象。但他们移动得太慢,所以他们都粘在一起。试着让它们快速上升:'y- = 50',或者用例如不同的初始x坐标。 – simonzack
使增量变大不会,问题在于不清除最后一个本身。那是什么错误。就像玩家移动一样,为什么不通过电梯:) –