Package org.newdawn.slick.tests

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

package org.newdawn.slick.tests;

import java.io.IOException;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.particles.ConfigurableEmitter;
import org.newdawn.slick.particles.ParticleIO;
import org.newdawn.slick.particles.ParticleSystem;

/**
* A test for loading editing particle systems
*
* @author kevin
*/
public class PedigreeTest extends BasicGame {
  /** The image we're currently displaying */
  private Image image;
  /** The game container */
  private GameContainer container;
  /** The smoke trail particle system */
  private ParticleSystem trail;
  /** The fire particle system */
  private ParticleSystem fire;
  /** The rocket x position */
  private float rx;
  /** The rocket y position */
  private float ry = 900;
 
  /**
   * Create a new image rendering test
   */
  public PedigreeTest() {
    super("Pedigree Test");
  }
 
  /**
   * @see org.newdawn.slick.BasicGame#init(org.newdawn.slick.GameContainer)
   */
  public void init(GameContainer container) throws SlickException {
    this.container = container;
   
    try {
      fire = ParticleIO.loadConfiguredSystem("testdata/system.xml");
      trail = ParticleIO.loadConfiguredSystem("testdata/smoketrail.xml");
     
    } catch (IOException e) {
      throw new SlickException("Failed to load particle systems", e);
    }
    image = new Image("testdata/rocket.png");
 
    spawnRocket();
  }

  /**
   * Spawn a test rocket
   */
  private void spawnRocket() {
    ry = 700;
    rx = (float) ((Math.random()*600) + 100);
  }

  /**
   * @see org.newdawn.slick.BasicGame#render(org.newdawn.slick.GameContainer, org.newdawn.slick.Graphics)
   */
  public void render(GameContainer container, Graphics g) {
    ((ConfigurableEmitter) trail.getEmitter(0)).setPosition(rx+14,ry+35);
    trail.render();
    image.draw((int) rx,(int) ry);
   
    g.translate(400, 300);
    fire.render();
  }

  /**
   * @see org.newdawn.slick.BasicGame#update(org.newdawn.slick.GameContainer, int)
   */
  public void update(GameContainer container, int delta) {
    fire.update(delta);
    trail.update(delta);
   
    ry -= delta * 0.25f;
    if (ry < -100) {
      spawnRocket();
    }
  }

  /**
   * Entry point to our test
   *
   * @param argv The arguments to pass into the test
   */
  public static void main(String[] argv) {
    try {
      AppGameContainer container = new AppGameContainer(new PedigreeTest());
      container.setDisplayMode(800,600,false);
      container.start();
    } catch (SlickException e) {
      e.printStackTrace();
    }
  }

  /**
   * @see org.newdawn.slick.BasicGame#keyPressed(int, char)
   */
  public void keyPressed(int key, char c) {
    if (key == Input.KEY_ESCAPE) {
      container.exit();
    }
  }
}
TOP

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

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.