Package org.newdawn.slick.tests

Source Code of org.newdawn.slick.tests.SoundURLTest

package org.newdawn.slick.tests;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.Color;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Input;
import org.newdawn.slick.Music;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.Sound;
import org.newdawn.slick.util.ResourceLoader;

/**
* A test for the sound system of the library
*
* @author kevin
* @author aaron
*/
public class SoundURLTest extends BasicGame {
  /** The sound to be played */
  private Sound sound;
  /** The sound to be played */
  private Sound charlie;
  /** The sound to be played */
  private Sound burp;
  /** The music to be played */
  private Music music;
  /** The music to be played */
  private Music musica;
  /** The music to be played */
  private Music musicb;
  /** The sound to be played */
  private Sound engine;
  /** The Volume of the playing music */
  private int volume = 1;
 
  /**
   * Create a new test for sounds
   */
  public SoundURLTest() {
    super("Sound URL Test");
  }
 
  /**
   * @see org.newdawn.slick.BasicGame#init(org.newdawn.slick.GameContainer)
   */
  public void init(GameContainer container) throws SlickException {
    sound = new Sound(ResourceLoader.getResource("testdata/restart.ogg"));
    charlie = new Sound(ResourceLoader.getResource("testdata/cbrown01.wav"));
    engine = new Sound(ResourceLoader.getResource("testdata/engine.wav"));
    //music = musica = new Music("testdata/SMB-X.XM");
    music = musica = new Music(ResourceLoader.getResource("testdata/restart.ogg"), false);
    musicb = new Music(ResourceLoader.getResource("testdata/kirby.ogg"), false);
    burp = new Sound(ResourceLoader.getResource("testdata/burp.aif"));
  }

  /**
   * @see org.newdawn.slick.BasicGame#render(org.newdawn.slick.GameContainer, org.newdawn.slick.Graphics)
   */
  public void render(GameContainer container, Graphics g) {
    g.setColor(Color.white);
    g.drawString("The OGG loop is now streaming from the file, woot.",100,60);
    g.drawString("Press space for sound effect (OGG)",100,100);
    g.drawString("Press P to pause/resume music (XM)",100,130);
    g.drawString("Press E to pause/resume engine sound (WAV)",100,190);
    g.drawString("Press enter for charlie (WAV)",100,160);
    g.drawString("Press C to change music",100,210);
    g.drawString("Press B to burp (AIF)",100,240);
    g.drawString("Press + or - to change volume of music", 100, 270);
    g.setColor(Color.blue);
    g.drawString("Music Volume Level: " + volume / 10.0f, 150, 300);
  }

  /**
   * @see org.newdawn.slick.BasicGame#update(org.newdawn.slick.GameContainer, int)
   */
  public void update(GameContainer container, int delta) {
  }

  /**
   * @see org.newdawn.slick.BasicGame#keyPressed(int, char)
   */
  public void keyPressed(int key, char c) {
    if (key == Input.KEY_ESCAPE) {
      System.exit(0);
    }
    if (key == Input.KEY_SPACE) {
      sound.play();
    }
    if (key == Input.KEY_B) {
      burp.play();
    }
    if (key == Input.KEY_A) {
      sound.playAt(-1, 0, 0);
    }
    if (key == Input.KEY_L) {
      sound.playAt(1, 0, 0);
    }
    if (key == Input.KEY_RETURN) {
      charlie.play(1.0f,1.0f);
    }
    if (key == Input.KEY_P) {
      if (music.playing()) {
        music.pause();
      } else {
        music.resume();
      }
    }
    if (key == Input.KEY_C) {
      music.stop();
      if (music == musica) {
        music = musicb;
      } else {
        music = musica;
      }
     
      music.loop();
    }
    if (key == Input.KEY_E) {
      if (engine.playing()) {
        engine.stop();
      } else {
        engine.loop();
      }
    }
   
    if (c == '+') {
      volume += 1;
      setVolume();
    }
   
    if (c == '-') {
      volume -= 1;
      setVolume();
    }

  }
 
  /**
   *  Convenience routine to set volume of current music
   */
  private void setVolume() {
    // Do bounds checking
    if(volume > 10) {
      volume = 10;
    } else if(volume < 0) {
      volume = 0;
    }
   
    music.setVolume(volume / 10.0f);
  }
 
  /**
   * Entry point to the sound test
   *
   * @param argv The arguments provided to the test
   */
  public static void main(String[] argv) {
    try {
      AppGameContainer container = new AppGameContainer(new SoundURLTest());
      container.setDisplayMode(800,600,false);
      container.start();
    } catch (SlickException e) {
      e.printStackTrace();
    }
  }
}
TOP

Related Classes of org.newdawn.slick.tests.SoundURLTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.