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
120 lines
3.6 KiB
Java
120 lines
3.6 KiB
Java
package org.newdawn.slick.tests;
|
|
|
|
import org.newdawn.slick.AppGameContainer;
|
|
import org.newdawn.slick.BasicGame;
|
|
import org.newdawn.slick.GameContainer;
|
|
import org.newdawn.slick.Graphics;
|
|
import org.newdawn.slick.Input;
|
|
import org.newdawn.slick.SlickException;
|
|
import org.newdawn.slick.tiled.TiledMap;
|
|
|
|
/**
|
|
* A test of the tile map system based around the TilED (http://www.mapeditor.org) tool
|
|
*
|
|
* @author kevin
|
|
*/
|
|
public class TileMapTest extends BasicGame {
|
|
/** The tile map we're going to load and render */
|
|
private TiledMap map;
|
|
|
|
/** the name of the map, read from map properties, specified by TilED */
|
|
private String mapName;
|
|
|
|
/** how hard are the monsters, read from layer properties, specified by TilED */
|
|
private String monsterDifficulty;
|
|
|
|
/** we try to read a property from the map which doesn't exist so we expect the default value */
|
|
private String nonExistingMapProperty;
|
|
|
|
/** we try to read a property from the layer which doesn't exist so we expect the default value */
|
|
private String nonExistingLayerProperty;
|
|
|
|
/** how long did we wait already until next update */
|
|
private int updateCounter = 0;
|
|
|
|
/** changing some tile of the map every UPDATE_TIME milliseconds */
|
|
private static int UPDATE_TIME = 1000;
|
|
|
|
/** we want to store the originalTileID before we set a new one */
|
|
private int originalTileID = 0;
|
|
|
|
/**
|
|
* Create our tile map test
|
|
*/
|
|
public TileMapTest() {
|
|
super("Tile Map Test");
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.BasicGame#init(org.newdawn.slick.GameContainer)
|
|
*/
|
|
public void init(GameContainer container) throws SlickException {
|
|
map = new TiledMap("testdata/testmap.tmx","testdata");
|
|
// read some properties from map and layer
|
|
mapName = map.getMapProperty("name", "Unknown map name");
|
|
monsterDifficulty = map.getLayerProperty(0, "monsters", "easy peasy");
|
|
nonExistingMapProperty = map.getMapProperty("zaphod", "Undefined map property");
|
|
nonExistingLayerProperty = map.getLayerProperty(1, "beeblebrox", "Undefined layer property");
|
|
|
|
// store the original tileid of layer 0 at 10, 10
|
|
originalTileID = map.getTileId(10, 10, 0);
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.BasicGame#render(org.newdawn.slick.GameContainer, org.newdawn.slick.Graphics)
|
|
*/
|
|
public void render(GameContainer container, Graphics g) {
|
|
map.render(10, 10, 4,4,15,15);
|
|
|
|
g.scale(0.35f,0.35f);
|
|
map.render(1400, 0);
|
|
g.resetTransform();
|
|
|
|
g.drawString("map name: " + mapName, 10, 500);
|
|
g.drawString("monster difficulty: " + monsterDifficulty, 10, 550);
|
|
|
|
g.drawString("non existing map property: " + nonExistingMapProperty, 10, 525);
|
|
g.drawString("non existing layer property: " + nonExistingLayerProperty, 10, 575);
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.BasicGame#update(org.newdawn.slick.GameContainer, int)
|
|
*/
|
|
public void update(GameContainer container, int delta) {
|
|
updateCounter += delta;
|
|
if (updateCounter > UPDATE_TIME) {
|
|
// swap the tile every second
|
|
updateCounter -= UPDATE_TIME;
|
|
int currentTileID = map.getTileId(10, 10, 0);
|
|
if (currentTileID != originalTileID)
|
|
map.setTileId(10, 10, 0, originalTileID);
|
|
else
|
|
map.setTileId(10, 10, 0, 1);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @see org.newdawn.slick.BasicGame#keyPressed(int, char)
|
|
*/
|
|
public void keyPressed(int key, char c) {
|
|
if (key == Input.KEY_ESCAPE) {
|
|
System.exit(0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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 TileMapTest());
|
|
container.setDisplayMode(800,600,false);
|
|
container.start();
|
|
} catch (SlickException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|