var player = createSprite(320,390,20,20);
var wall1 = createSprite(220,360,210,20);
var wall2 = createSprite(180,300,210,20);
createEdgeSprites();
wall1.velocityX = 2;
wall2.velocityX = -2;
function draw() {
background("white");
if(keyWentDown("space")&&player.velocityY==0){
player.velocityY = -10;
}
player.velocityY += 0.8;
if(keyDown("left")){
player.x-=5;
}
if(keyDown("right")){
player.x+=5;
}
if(player.isTouching(wall1)){
player.velocityX = wall1.velocityX;
console.log("Player velocity: "+player.velocityX);
console.log("Wall1 velocity: "+wall1.velocityX);
}
else{
player.velocityX = 0;
}
if(player.isTouching(wall2)){
player.velocityX = wall2.velocityX;
console.log("Player velocity: "+player.velocityX);
console.log("Wall2 velocity: "+wall2.velocityX);
}
wall1.bounceOff(edges);
wall2.bounceOff(edges);
player.collide(edges);
player.collide(wall1);
player.collide(wall2);
drawSprites();
}
我正在 code.org 的游戏实验室中尝试这个迷宫项目。我希望玩家的移动速度与墙的移动速度相同。控制台中显示的速度指向相同的数字,但我相信 player.collide(wall) 指令导致播放器和墙之间的速度差异。有人可以帮我克服这个问题吗?如果我不提供碰撞选项,我怎样才能让玩家站在墙上并分配与墙相同的速度?