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

📄 shotsounds.java

📁 手机J2ME开发的CS游戏的Demo
💻 JAVA
字号:



import java.io.*;
import javax.microedition.media.*;


public class ShotSounds implements PlayerListener
{
  // number of fired shot and explosion sounds used 
  private static final int NUM_SHOT_SOUNDS = 3;
  private static final int NUM_EXPLO_SOUNDS = 5;


  // for playing sounds (fired shots and explosions)
  private Player[] shotPlayers;
  private Player[] exploPlayers;
  private int currExploPlayer, currShotPlayer;


  public ShotSounds()
  {
    // load fired shot sounds
    System.out.println("Loading sounds");
    shotPlayers = loadSounds("/sounds/laser.wav", NUM_SHOT_SOUNDS);
    currShotPlayer = 0;

    loadExploSounds("/sounds/explo");
  }  // end of ShotSounds()



  // ------------------ loading ---------------------

  private void loadExploSounds(String fn)
  // load fn + ((0 to (NUM_EXPLO_SOUNDS-1) + ".wav" sounds 
  {
    exploPlayers = new Player[NUM_EXPLO_SOUNDS];
    currExploPlayer = 0;
    for (int i=0; i < NUM_EXPLO_SOUNDS; i++)
      exploPlayers[i] = loadSound(fn+i+".wav");
  } // end of loadExploSounds()


  private Player[] loadSounds(String fn, int num)
  // load num copies of sound in fn
  {
    Player[] ps = new Player[num];
    for (int i=0; i < num; i++)
      ps[i] = loadSound(fn);
    return ps;
  }  // end of loadSounds()


  private Player loadSound(String fn)
  // load fn sound
  {
    Player p = null;
	try{
      InputStream in = getClass().getResourceAsStream(fn);
      p = Manager.createPlayer(in,"audio/x-wav");
      p.realize();
      p.prefetch();    // move player to PREFETECHED state
      p.addPlayerListener(this);
	}
    catch(Exception ex)
    { System.out.println("Could not load sound in " + fn);  }

    return p;
  } // end of loadSound()



  // --------------- playing --------------------------

  public void playExplosionSound()
  { playSound( exploPlayers[currExploPlayer] );
    currExploPlayer = (currExploPlayer+1)%NUM_EXPLO_SOUNDS;
  } // end of playExplosionSound()


  public void playShotSound()
  { playSound( shotPlayers[currShotPlayer] );
    currShotPlayer = (currShotPlayer+1)%NUM_SHOT_SOUNDS;
  } // end of playShotSound()


  private void playSound(Player p)
  // Only start a player if it's in a PREFETECHED state.
  {
    if (p != null) {
      if (p.getState() == Player.PREFETCHED) {
	    try{
          p.setMediaTime(0);    // rewind (a safety precaution)
          p.start();
	    }
        catch(Exception ex)
        { System.out.println("Could not play sound ");  }
      }
    }
  }  // end of playSound()



  // ----------------- finishing off --------------------


  public void playerUpdate(Player p, String event, Object eventData)
  // reset the player, ready for its next use
  {
	if (event == END_OF_MEDIA) {
      try {
        p.stop();           // back to PREFETECHED state
		p.setMediaTime(0);  // rewind to the beginning
      }
       catch(Exception ex) {}
    }
  }  // end of playerUpdate()


  public void closeSounds()
  // tidy up by closing all the players down
  { 
    for(int i=0; i < NUM_SHOT_SOUNDS; i++)
      shotPlayers[i].close();
    for(int i=0; i < NUM_EXPLO_SOUNDS; i++)
      exploPlayers[i].close();
  }

}  // end of ShotSounds class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -