📄 soundeffects.java
字号:
/**********************************************************
File name:SoundEffects.java
Author:夏文涛
Version:Beta1.0
Data:2007/10/16
Description:
游戏音效的处理
Function List:
1.getInstance() 如果音效不为空,返回音效
2.closeSound() 播放器关闭
3.getShopName() 获取商店名称
4.startLogoSound() 开始显示游戏LOGO时的声音
5.startAutoRunSound() 开始游戏自动运行时的声音,游戏开始的事件
6.startTankfieldSound() 开始在世界地图乘坦克行走时的声音
7.startHerofieldSound() 开始在世界地图徒步行走时的声音
8.startTownSound() 开始在城镇时的声音
9.startBattleSound() 开始战斗时的声音
10.startPlayer(Player) 开始播放音效
11.createPlayer(String,String) 根据音效文件路径和类型构造播放器
*********************************************************/
package com.Izual.MetalMax;
import javax.microedition.media.*;
import java.io.*;
class SoundEffects {
private static SoundEffects instance;
/*设置现在播放的内容和以前播放的内容*/
Player currentPlayer = null;
Player lastPlayer = null;
/*构造函数,把现在播放的内容设者成以前播放的内容*/
public SoundEffects() {
// TODO 自动生成构造函数存根
lastPlayer = currentPlayer;
}
/*如果音效不为空,返回音效*/
static SoundEffects getInstance(){
if(instance == null){
instance = new SoundEffects();
}
return instance;
}
/*播放器关闭*/
void closeSound(){
currentPlayer.close();
}
/*开始显示游戏LOGO时的声音*/
void startLogoSound(){
lastPlayer = currentPlayer;
startPlayer(createPlayer("/open.mid","audio/midi"));
}
/*开始游戏自动运行时的声音,游戏开始的事件*/
void startAutoRunSound(){
lastPlayer = currentPlayer;
startPlayer(createPlayer("/autorun.mid","audio/midi"));
}
/*开始在世界地图乘坦克行走时的声音*/
void startTankfieldSound(){
lastPlayer = currentPlayer;
startPlayer(createPlayer("/tank.mid","audio/midi"));
}
/*开始在世界地图徒步行走时的声音*/
void startHerofieldSound(){
lastPlayer = currentPlayer;
startPlayer(createPlayer("/field.mid","audio/midi"));
}
/*开始在城镇时的声音*/
void startTownSound(){
lastPlayer = currentPlayer;
startPlayer(createPlayer("/town.mid","audio/midi"));
}
/*开始战斗时的声音*/
void startBattleSound(){
lastPlayer = currentPlayer;
startPlayer(createPlayer("/battle.mid","audio/midi"));
}
/*开始播放音效*/
private void startPlayer(Player p){
if(p != null){
try {
p.stop();
p.setLoopCount(-1);
p.start();
} catch (MediaException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
/*如果现在播放的音效和以前播放的音效不一致,则关闭以前的音效,防止重音*/
if(p != lastPlayer & lastPlayer != null){
lastPlayer.close();
}
}
/*根据音效文件路径和类型构造播放器*/
private Player createPlayer(String filename,String format){
Player p = null;
try{
InputStream is = getClass().getResourceAsStream(filename);
p = Manager.createPlayer(is,format);
p.realize();
p.prefetch();
}catch(IOException e){}
catch(MediaException e){}
/*把它设置为正在播放的音效*/
currentPlayer = p;
return p;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -