mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-08 12:51:51 +09:00
Former-commit-id: 1647fa32ef6894bd7db44f741f07c2f4dcdf9054 Former-commit-id: 0e5810dcfbe1fd59b13e7cabe9f1e93c5542da2d
162 lines
4.6 KiB
Java
162 lines
4.6 KiB
Java
package org.newdawn.slick.tests;
|
|
|
|
import org.newdawn.slick.AppGameContainer;
|
|
import org.newdawn.slick.Color;
|
|
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.state.BasicGameState;
|
|
import org.newdawn.slick.state.StateBasedGame;
|
|
import org.newdawn.slick.state.transition.BlobbyTransition;
|
|
import org.newdawn.slick.state.transition.FadeInTransition;
|
|
import org.newdawn.slick.state.transition.FadeOutTransition;
|
|
import org.newdawn.slick.state.transition.HorizontalSplitTransition;
|
|
import org.newdawn.slick.state.transition.RotateTransition;
|
|
import org.newdawn.slick.state.transition.SelectTransition;
|
|
import org.newdawn.slick.state.transition.Transition;
|
|
import org.newdawn.slick.state.transition.VerticalSplitTransition;
|
|
import org.newdawn.slick.util.Log;
|
|
|
|
/**
|
|
* A test to view the different transitions that are currently implemented
|
|
*
|
|
* @author kevin
|
|
*/
|
|
public class TransitionTest extends StateBasedGame {
|
|
/** The transitions under test */
|
|
private Class[][] transitions = new Class[][] {
|
|
{null, VerticalSplitTransition.class},
|
|
{FadeOutTransition.class, FadeInTransition.class},
|
|
{null, RotateTransition.class},
|
|
{null, HorizontalSplitTransition.class},
|
|
{null, BlobbyTransition.class},
|
|
{null, SelectTransition.class},
|
|
};
|
|
/** The index of the next transition to use */
|
|
private int index;
|
|
|
|
/**
|
|
* Test the transitions implemented
|
|
*/
|
|
public TransitionTest() {
|
|
super("Transition Test - Hit Space To Transition");
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.state.StateBasedGame#initStatesList(org.newdawn.slick.GameContainer)
|
|
*/
|
|
public void initStatesList(GameContainer container) throws SlickException {
|
|
addState(new ImageState(0, "testdata/wallpaper/paper1.png", 1));
|
|
addState(new ImageState(1, "testdata/wallpaper/paper2.png", 2));
|
|
addState(new ImageState(2, "testdata/bigimage.tga", 0));
|
|
}
|
|
|
|
/**
|
|
* Get the next transition pair that we'lluse
|
|
*
|
|
* @return The pair of transitions used to enter and leave the next state
|
|
*/
|
|
public Transition[] getNextTransitionPair() {
|
|
Transition[] pair = new Transition[2];
|
|
|
|
try {
|
|
if (transitions[index][0] != null) {
|
|
pair[0] = (Transition) transitions[index][0].newInstance();
|
|
}
|
|
if (transitions[index][1] != null) {
|
|
pair[1] = (Transition) transitions[index][1].newInstance();
|
|
}
|
|
} catch (Throwable e) {
|
|
Log.error(e);
|
|
}
|
|
|
|
index++;
|
|
if (index >= transitions.length) {
|
|
index = 0;
|
|
}
|
|
|
|
return pair;
|
|
}
|
|
|
|
/**
|
|
* A test state that just displayed one image full scren
|
|
*
|
|
* @author kevin
|
|
*/
|
|
private class ImageState extends BasicGameState {
|
|
/** The id of this state */
|
|
private int id;
|
|
/** The next state we'll move to */
|
|
private int next;
|
|
/** The reference to the image to be displayed */
|
|
private String ref;
|
|
/** The loaded image */
|
|
private Image image;
|
|
|
|
/**
|
|
* Create a new image state
|
|
*
|
|
* @param id The id of the this state
|
|
* @param ref The reference to the image to display
|
|
* @param next The next state we'll mvoe to
|
|
*/
|
|
public ImageState(int id, String ref, int next) {
|
|
this.ref = ref;
|
|
this.id = id;
|
|
this.next = next;
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.state.BasicGameState#getID()
|
|
*/
|
|
public int getID() {
|
|
return id;
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.state.GameState#init(org.newdawn.slick.GameContainer, org.newdawn.slick.state.StateBasedGame)
|
|
*/
|
|
public void init(GameContainer container, StateBasedGame game) throws SlickException {
|
|
image = new Image(ref);
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.state.GameState#render(org.newdawn.slick.GameContainer, org.newdawn.slick.state.StateBasedGame, org.newdawn.slick.Graphics)
|
|
*/
|
|
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {
|
|
image.draw(0,0,800,600);
|
|
g.setColor(Color.red);
|
|
g.fillRect(-50,200,50,50);
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.state.GameState#update(org.newdawn.slick.GameContainer, org.newdawn.slick.state.StateBasedGame, int)
|
|
*/
|
|
public void update(GameContainer container, StateBasedGame game, int delta) throws SlickException {
|
|
if (container.getInput().isKeyPressed(Input.KEY_SPACE)) {
|
|
Transition[] pair = getNextTransitionPair();
|
|
game.enterState(next, pair[0], pair[1]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Entry point to our test
|
|
*
|
|
* @param argv
|
|
* The arguments passed to the test
|
|
*/
|
|
public static void main(String[] argv) {
|
|
try {
|
|
AppGameContainer container = new AppGameContainer(
|
|
new TransitionTest());
|
|
container.setDisplayMode(800, 600, false);
|
|
container.start();
|
|
} catch (SlickException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|