TiledMapTile 设置纹理区域给出 NullPointerException
TiledMapTile set texture region gives NullPointerException
我在为我的 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);
通常,当您没有在代码中初始化某些内容时,会发生 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
我在为我的 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);
通常,当您没有在代码中初始化某些内容时,会发生 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