slick2D spritesheet不加载

时间:2014-10-17 18:52:59

标签: image 2d sprite slick tile

我有一个问题,我刚刚接触到了光滑的东西,我正在制作一个侧面滚轮。我正在尝试在stateBasedGame中加载spritesheet。但是,当我运行/调试游戏时,它会运行,但不会显示图像。这是代码:

//private static Map<String, Image> images;
private static Map<String, SpriteSheet> sprites;
//private static Map<String, Sound> sounds;

public Resources() {
    //images = new HashMap<String, Image>();
    sprites = new HashMap<String, SpriteSheet>();
    //sounds = new HashMap<String, Sound>();

    try {
        sprites.put("tiles", loadSprite("resources/tiles.png", 32, 32));
    } catch (SlickException e) {
        e.printStackTrace();
    }
}

private Image loadImage(String path) throws SlickException {
    return new Image(path, false, Image.FILTER_NEAREST);
}

private SpriteSheet loadSprite(String path, int tw, int th) throws SlickException {
    return new SpriteSheet(loadImage(path), tw, th);
}

public static Image getSpriteImage(String getter, int x, int y) {
    sprites.get(getter).getSubImage(x, y);
    return null;
}

在GameState中我把它放了:

Resources.getSpriteImage("tiles", 0, 0);

我仔细检查了路径,这是正确的。请帮我!

2 个答案:

答案 0 :(得分:0)

这是正确的,问题是你没有调用draw方法,你只是得到了一个图像实例。

试试这个: Resources.getSpriteImage(“tiles”,0,0).draw(0,0);

答案 1 :(得分:0)

你的方法getSpriteImage需要返回图像而不是返回null:

public static Image getSpriteImage(String getter, int x, int y) {
    return sprites.get(getter).getSubImage(x, y);
}

不要忘记在GameState中实际绘制瓷砖:

Resources.getSpriteImage("tiles", 0, 0).draw(0, 0);