音效和音乐
游戏开发中,声音大致分为两种:音效和音乐。音效是指那些较短的音频,比如枪声、尖叫声,音效会一次全部加载到内存,如果有需要,会循环播放,甚至多个音效同时播放。音乐一般就是我们常说的BGM(Background Music),它是一段很长的音乐,没法一次加载到内存中,通常用来缓缓播放烘托游戏的背景气氛。
LibGDX中,Sound类封装了音效,Music类封装了音乐。
Sound的使用
下面例子代码展示了Sound类的使用,我们这里循环播放一段wav格式的音频。
package com.gacfox.gdxdemo;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.files.FileHandle;
public class MyGdxGame extends ApplicationAdapter {
private Sound sound;
@Override
public void create () {
FileHandle soundFile = Gdx.files.internal("12359.wav");
sound = Gdx.audio.newSound(soundFile);
sound.loop();
}
@Override
public void render () {
}
@Override
public void dispose () {
sound.dispose();
}
}
loop()函数可以实现循环播放,play()则只播放一次。前面说过音效是全部加载到内存的,如果因为场景切换等原因,某些音效再也不会用到了,我们可以将它们释放掉,这里我们可以通过sound.dispose()来手动释放内存。
Music的使用
下面例子代码展示了Music类的使用,我们这里循环播放一段mp3格式的BGM。
package com.gacfox.gdxdemo;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.files.FileHandle;
public class MyGdxGame extends ApplicationAdapter {
private Music music;
@Override
public void create() {
FileHandle musicFile = Gdx.files.internal("addiction.mp3");
music = Gdx.audio.newMusic(musicFile);
music.setLooping(true);
music.play();
}
@Override
public void render() {
}
@Override
public void dispose() {
music.dispose();
}
}
代码很简单,就不多解释了。
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。