This is what I’m doing:
private void initGraphics() throws SlickException {
// Prepare the sprite sheet for use
Image tilesheet1 = new Image(Thread.currentThread().getContextClassLoader().getResourceAsStream("/res/tileset.png"), "/res/tileset.png", false);
tilesheet = new SpriteSheet(tilesheet1, TILE_WIDTH, TILE_HEIGHT);
Image charsheet1 = new Image(Thread.currentThread().getContextClassLoader().getResourceAsStream("/res/actors/spritesheet.png"), "/res/actors/spritesheet.png", false);
charsheet = new SpriteSheet(tilesheet1, 16, 24);
// Create animations
charAnimations = new HashMap<CHARANIM, Animation>();
for (CHARANIM animationEnum : CHARANIM.values()) {
int numberOfFrames = animationEnum.frames.length;
Image[] frames = new Image[numberOfFrames];
for (int i = 0; i < numberOfFrames; i++) {
CHAR_IMAGE frameReference = animationEnum.frames[i];
frames[i] = charsheet.getSubImage(frameReference.getX(), frameReference.getY())
.getFlippedCopy(animationEnum.flipHorizontal, false);
}
Animation animation = new Animation(frames, animationEnum.length);
animation.setPingPong(animationEnum.pingpong);
charAnimations.put(animationEnum, animation);
}
// Set up animation sets
animationSets = new HashMap<ANIMATION_SET, AnimationSet>();
AnimationSet animSet = new AnimationSet();
animSet.addAnimation(DIRECTION.RIGHT.getID() | ANIMATION_STATE.STAND.getID(),
CHARANIM.CHAR_STAND_RIGHT);
animSet.addAnimation(DIRECTION.LEFT.getID() | ANIMATION_STATE.STAND.getID(),
CHARANIM.CHAR_STAND_LEFT);
animSet.addAnimation(DIRECTION.RIGHT.getID() | ANIMATION_STATE.WALK.getID(),
CHARANIM.CHAR_WALK_RIGHT);
animSet.addAnimation(DIRECTION.LEFT.getID() | ANIMATION_STATE.WALK.getID(),
CHARANIM.CHAR_WALK_LEFT);
animSet.addAnimation(DIRECTION.RIGHT.getID() | ANIMATION_STATE.JUMP.getID(),
CHARANIM.CHAR_JUMP_RIGHT);
animSet.addAnimation(DIRECTION.LEFT.getID() | ANIMATION_STATE.JUMP.getID(),
CHARANIM.CHAR_JUMP_LEFT);
animationSets.put(ANIMATION_SET.GRAY_GUY, animSet);
background = new Image(Thread.currentThread().getContextClassLoader().getResourceAsStream("/res/background.png"), "/res/background.png", false);
background.setFilter(Image.FILTER_NEAREST);
}
.and this is what happening:
Mon Nov 21 20:35:52 CST 2011 INFO:Slick Build #274
Mon Nov 21 20:35:52 CST 2011 INFO:LWJGL Version: 2.7.1
Mon Nov 21 20:35:52 CST 2011 INFO:OriginalDisplayMode: 1366 x 768 x 32 @60Hz
Mon Nov 21 20:35:52 CST 2011 INFO:TargetDisplayMode: 600 x 400 x 0 @0Hz
Mon Nov 21 20:35:52 CST 2011 INFO:Starting display 600x400
Mon Nov 21 20:35:52 CST 2011 INFO:Use Java PNG Loader = true
WARNING: Found unknown Windows version: Windows 7
Attempting to use default windows plug-in.
Loading: net.java.games.input.DirectAndRawInputEnvironmentPlugin
Mon Nov 21 20:35:52 CST 2011 INFO:Found 2 controllers
Mon Nov 21 20:35:52 CST 2011 INFO:0 : Razer Mamba
Mon Nov 21 20:35:52 CST 2011 INFO:1 : Razer Mamba
Mon Nov 21 20:35:52 CST 2011 ERROR:Stream closed
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(Unknown Source)
at java.io.BufferedInputStream.available(Unknown Source)
at org.newdawn.slick.opengl.CompositeImageData.loadImage(CompositeImageData.java:53)
at org.newdawn.slick.opengl.CompositeImageData.loadImage(CompositeImageData.java:43)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:277)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:231)
at org.newdawn.slick.Image.load(Image.java:422)
at org.newdawn.slick.Image.<init>(Image.java:269)
at org.newdawn.slick.Image.<init>(Image.java:256)
at com.javadaemon.skrollr.util.ResourceManager.initGraphics(ResourceManager.java:135)
at com.javadaemon.skrollr.util.ResourceManager.init(ResourceManager.java:42)
at com.javadaemon.skrollr.util.ResourceManager.<init>(ResourceManager.java:38)
at com.javadaemon.skrollr.util.ResourceManager.getRessourceManager(ResourceManager.java:31)
at com.javadaemon.skrollr.GameMain.init(GameMain.java:45)
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:390)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:314)
at com.javadaemon.skrollr.GameMain.main(GameMain.java:77)
Mon Nov 21 20:35:52 CST 2011 ERROR:Failed to load image from: /res/tileset.png
org.newdawn.slick.SlickException: Failed to load image from: /res/tileset.png
at org.newdawn.slick.Image.load(Image.java:425)
at org.newdawn.slick.Image.<init>(Image.java:269)
at org.newdawn.slick.Image.<init>(Image.java:256)
at com.javadaemon.skrollr.util.ResourceManager.initGraphics(ResourceManager.java:135)
at com.javadaemon.skrollr.util.ResourceManager.init(ResourceManager.java:42)
at com.javadaemon.skrollr.util.ResourceManager.<init>(ResourceManager.java:38)
at com.javadaemon.skrollr.util.ResourceManager.getRessourceManager(ResourceManager.java:31)
at com.javadaemon.skrollr.GameMain.init(GameMain.java:45)
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:390)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:314)
at com.javadaemon.skrollr.GameMain.main(GameMain.java:77)
Caused by: java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(Unknown Source)
at java.io.BufferedInputStream.available(Unknown Source)
at org.newdawn.slick.opengl.CompositeImageData.loadImage(CompositeImageData.java:53)
at org.newdawn.slick.opengl.CompositeImageData.loadImage(CompositeImageData.java:43)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:277)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:231)
at org.newdawn.slick.Image.load(Image.java:422)
... 10 more