安卓游戏,播放“Game Over”音效
Posted
技术标签:
【中文标题】安卓游戏,播放“Game Over”音效【英文标题】:Android game, playing "Game Over" sound FX 【发布时间】:2019-07-17 13:05:59 【问题描述】:我正在编写一个简单的 android 游戏。我无法播放简单的“游戏完成”音效,游戏一结束(无论是赢还是输),然后才能开始新游戏。
我的源代码是:
soundPool.play(complete, 1,1, 0, 0, 1);
soundPool.autoPause();
如果我不使用autoPause()
,背景音乐会继续循环播放,我不想在“游戏结束”屏幕中出现这种情况。就像现在一样,“完整”的声音无法正常播放。
任何想法或帮助等将不胜感激。
【问题讨论】:
【参考方案1】:您需要停止背景音乐,并摆脱自动暂停。
假设您像这样开始背景音乐循环:
int bg_music_loop = soundPool.play(BACKGROUND_MUSIC_ID, volume, volume, 1, 0, 1f);
然后你会用
停止它soudPool.stop(bg_music_loop);
然后你就可以开始你的游戏结束声音了:
soundPool.play(complete, 1,1, 0, 0, 1);
【讨论】:
谢谢,但由于某种原因,它不能正常工作,虽然游戏编译没有错误。我试了几次,但要么“完整”的声音以一种奇怪的方式播放,要么“bg_music_loop”没有停止。 你是什么意思“以一种奇怪的方式玩”? 您可以尝试.stop(background_id)
- 如果没有帮助:将 maxStreams 设置为 1。
它现在与 maxStreams 一起工作,不再是默认的 10,而是所需的声音数量,在我的例子中是 4。所以再次感谢。
是的,SoundPool 只能处理当前在池中的声音(例如播放)。如果你在游戏结束模式下没有碰撞,那么你不应该打电话给play()
。像if(!gameOver) soundPool.play(COLLISION.....)
这样的东西。游戏结束后,只需将名为 gameOver
的变量设置为 false。以上是关于安卓游戏,播放“Game Over”音效的主要内容,如果未能解决你的问题,请参考以下文章
Ruby‘s Adventrue游戏制作笔记(十四)Unity播放游戏音效