TiledMapTile设置纹理区域给出NullPointerException

时间:2015-04-09 19:44:34

标签: java android libgdx tile region

我在将纹理区域设置为TiledMapTile时遇到了一些麻烦。它给了我NullPointerException,我不知道为什么。

以下是一些代码:

TiledMapTile coinTile;

public void show () {
    mapTexture1 = new Texture(Gdx.files.internal("maps/other/texture1.png"));

    TextureRegion mapTexture1Region = new TextureRegion(mapTexture1, 32, 0, 16, 16);
    coinTile.setTextureRegion(mapTexture1Region);
}

这是错误:

  

04-09 21:57:18.222:E / AndroidRuntime(7792):java.lang.NullPointerException
  04-09 21:57:18.222:E / AndroidRuntime(7792):at com.never.mind.screens.GameScreen.show(GameScreen.java:225)

导致这一行:

coinTile.setTextureRegion(mapTexture1Region);

1 个答案:

答案 0 :(得分:0)

通常,当您未在代码中初始化某些内容时,会发生NullPointerException。

由于您没有提供完整的代码,我只能提供您的建议。 就像你做的一样

mapTexture1 = new Texture(Gdx.files.internal("maps/other/texture1.png"));

你也应该

coinTile = new TiledMapTile () {
@Override
public int getId() {
    return 0;
}

@Override
public void setId(int id) {

}

@Override
public BlendMode getBlendMode() {
    return null;
}

@Override
public void setBlendMode(BlendMode blendMode) {

}

@Override
public TextureRegion getTextureRegion() {
    return null;
}

@Override
public void setTextureRegion(TextureRegion textureRegion) {

}

@Override
public float getOffsetX() {
    return 0;
}

@Override
public void setOffsetX(float offsetX) {

}

@Override
public float getOffsetY() {
    return 0;
}

@Override
public void setOffsetY(float offsetY) {

}

@Override
public MapProperties getProperties() {
    return null;
}

}

顺便读取特定参数的API。

由于您是java新手,因此请阅读here以掌握NullPointers