⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soundeffects.java

📁 此为一款基于J2ME的手机游戏
💻 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 + -