0
每次按下一个键发射导弹时,我都会使用声音。但这听起来不错。我想这是因为在按下键时声音重复了很多次,并且代码在Update方法中。我正在寻找一个简单的解决方案,只需按下按键即可播放一次声音? (我已经测试过使用一个布尔变量在第一次变为true,然后在声音已经播放之后变为false,但是这样做效果不佳,因为何时何地我应该再次将其设置为true)帮助会被预先消除!控制声音只能在XNA播放一次
// Fire
if (keyboardState.IsKeyDown(Keys.Space))
{
missile.launchMissile(spaceship.spaceshipPosition, spaceship.spaceshipDirection);
soundExplosion.Play();
}
编辑新的代码不工作!?
KeyboardState keyboardState = Keyboard.GetState();
KeyboardState prevKeyboardState;
prevKeyboardState = keyboardState;
keyboardState = Keyboard.GetState();
if (keyboardState.IsKeyDown(Keys.Space) && prevKeyboardState.IsKeyUp(Keys.Space))
{
missile.launchMissile(spaceship.spaceshipPosition, spaceship.spaceshipDirection);
soundExplosion.Play();
}
嗨!感谢您的帮助,但代码无法正常工作!我已经用你的代码尝试过所有类型的组合!什么可能是错的?我猜KeyboardState的第一行有一个大的'B',它应该是一个小'b'!?更多的帮助是preciated! – 2012-07-11 15:52:46
很难说出你在哪里创造这些东西。如果你把KeyBoardState prevKeyboardState;在你的更新电话中,这是你的问题,但我不能告诉你的帖子。 – Beanish 2012-07-13 14:27:46