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