我正在尝试开发一个闪闪发光的敌人的道奇风格游戏,该游戏具有播放器在保持空格键时"冲刺"的能力。
我试图在space.isdown((为真时尝试乘以播放器的速度,但是一旦按下空间,玩家就会消失。
function update() {
if (gameState.cursors.left.isDown) {
gameState.player.setVelocityX(-160);
} else if (gameState.cursors.right.isDown) {
gameState.player.setVelocityX(160);
} else {
gameState.player.setVelocityX(0);
}
//Sprint Ability
if (gameState.player.velocityx != 0 && gameState.cursors.space.isDown){
gameState.player.setVelocityX(gameState.player.velocityx * 2);
} else {};
}
您的代码正在设置播放器的速度,每次更新时,播放器的当前速度加倍,通常每秒60倍。因此,玩家的速度迅速加倍,因此由于屏幕的速度而消失。
为了避免这种情况,为玩家的速度定义常数,并将速度设置为加倍常数。
这是我制作的游戏中使用的一些代码:
if(Game.controls.Run.isDown) {
player.body.velocity.x = playerSpeed*2;
}
playerSpeed
是定义播放器水平运动速度的常数,在您的情况下,它似乎是160。
您应该能够为您的代码进行修改。