我正在Phaser做一个游戏。当我的播放器向左或向右移动时,它会在停止前继续移动一会儿。有没有办法可以阻止这种情况获得更敏感的动作?
代码是这样的:
if(cursors.left.isDown){
player.body.velocity.x += -20;
}
答案 0 :(得分:1)
如果您想立即停止player
,只需将player.body.velocity.x
设置为0。
player.body.velocity.x = 0;
许多官方教程(例如此Mass Velocity Test)都显示了此示例。在这种情况下,他们实际上在update()
调用开始时将x和y速度重置为0。这样可以立即停止和启动。
如果由于某种原因你想要加速但是立即停止,你可能只是使用其他。
if (cursors.left.isDown) {
player.body.velocity.x += -20;
} else {
player.body.velocity.x = 0;
}
您还可以将速度存储在变量中,然后在if语句中使用它。未测试的:
currentVelocity = player.body.velocity.x;
player.body.velocity.x = 0;
if (cursors.left.isDown) {
player.body.velocity.x = currentVelocity - 20;
}