mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-10 22:01:52 +09:00
added sources for Slick
Former-commit-id: 1647fa32ef6894bd7db44f741f07c2f4dcdf9054 Former-commit-id: 0e5810dcfbe1fd59b13e7cabe9f1e93c5542da2d
This commit is contained in:
161
lib/slick-source/org/newdawn/slick/tests/TransitionTest.java
Normal file
161
lib/slick-source/org/newdawn/slick/tests/TransitionTest.java
Normal file
@@ -0,0 +1,161 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user