?? 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 + -