我在屏幕上传播了一系列硬币。我想在触摸硬币时添加声音。
private Music coinSound;
show()中的:
coinSound=assetManager.get(Assets.collectCoin);
在这里调用coinSound.play():
if (MyInputProcessor.isTouchDown) {
touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
game.camera.unproject(touchPos);
for (int i = 0; i < coins.length; i++) {
Rectangle textureBounds = new Rectangle(coins[i].getX(), coins[i].getY(), coins[i].getWidth(),coins[i].getHeight());
if (textureBounds.contains(touchPos.x, touchPos.y) && !coins[i].isBreakBool()) {
coinSound.play();
coins[i].setTapBool(true);
}
}
MyInputProcessor.isTouchDown = false;
}
现在声音正在播放,但不是所有的阵列元素。对于触摸一枚硬币,它每次都正确播放。我需要改变什么才能让它为每个触摸的硬币播放?
答案 0 :(得分:2)
使用Sound
代替Music
。
Sound effects是小型音频样本,通常不会超过几秒钟,可以播放特定的游戏事件,例如角色跳跃或射击枪。
AssetManager manager = new AssetManager();
manager.load("data/mysound.mp3", Sound.class);
manager.finishLoading();
从AssetManager
Sound sound = manager.get("data/mysound.mp3", Sound.class);
sound.play();
Music
个实例很重,通常最多只能加载一个或两个。