0
我在游戏中添加了一些东西,这样当你按下空间时,你会得到一个小的速度提升。但是,只有在使用WASD密钥时才能正常工作。如果按上下左右方向键,增强功能将不起作用,否则会起作用。任何人都可以解释它为什么这样做?有人可以解释这一点吗? (运动不能正常工作)
下面的代码:
boostTimer += Gdx.graphics.getDeltaTime();
if(boostTimer > 3){
snailBoost = 0;
boostTimer = 0;
}
//movement
if(Gdx.input.isKeyPressed(Keys.LEFT) || Gdx.input.isKeyPressed(Keys.A)){
if(Gdx.input.isKeyPressed(Keys.SPACE) && snailBoost < 20){
snailBoost++;
snail.getBounds().x -= (snailSpeed + 100) * delta;
}
//flips the sprite
snail.getSprite().setFlip(false, true);
snail.getBounds().x -= snailSpeed * delta;
//handles what happens when you go outside the game world
if(snail.getBounds().x < -100)snail.getBounds().x = 1920;
}
if(Gdx.input.isKeyPressed(Keys.RIGHT) || Gdx.input.isKeyPressed(Keys.D)){
if(Gdx.input.isKeyPressed(Keys.SPACE) && snailBoost < 20){
snailBoost++;
snail.getBounds().x += (snailSpeed + 100) * delta;
}
snail.getSprite().setFlip(true, true);
snail.getBounds().x += snailSpeed * delta;
if(snail.getBounds().x > 2020)snail.getBounds().x = -100;
}
if(Gdx.input.isKeyPressed(Keys.UP) || Gdx.input.isKeyPressed(Keys.W)){
if(Gdx.input.isKeyPressed(Keys.SPACE) && snailBoost < 20){
snailBoost++;
snail.getBounds().y -= (snailSpeed + 100) * delta;
}
snail.getBounds().y -= snailSpeed * delta;
if(snail.getBounds().y < -100)snail.getBounds().y = 1080;
}
if(Gdx.input.isKeyPressed(Keys.DOWN) || Gdx.input.isKeyPressed(Keys.S)){
if(Gdx.input.isKeyPressed(Keys.SPACE) && snailBoost < 20){
snailBoost++;
snail.getBounds().y += (snailSpeed + 100) * delta;
}
snail.getBounds().y += snailSpeed * delta;
if(snail.getBounds().y > 1080)snail.getBounds().y = -100;
}
对不起乱码。 :P 还是游戏开发的新手。
好的,谢谢你的回答。 –