2015-04-09 1 views
0

У меня возникли проблемы с настройкой области текстуры на мой TiledMapTile. Это дает мне NullPointerException, и я понятия не имею, почему.TiledMapTile set texture region дает 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

Вы можете разместить весь StackTrace. Кроме того, где определяется mapTexture1? –

+0

Обновлено, как вы просили (я новичок в java - я предполагаю, что с помощью stacktrace вы имели в виду точную ошибку и строку кода?) – urban07

+0

Запустите быстрый журнал отладки, чтобы проверить, что 'Gdx.files.internal (" maps/другой/texture1.png ")' возвращает нечто иное, чем 'null' –

ответ

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

+0

Спасибо. Когда я добавил код, который вы отправили, он прекратил возвращать nullpointerexception в coinTile. Тем не менее, теперь он дает nullpointerexception, когда я пытаюсь обновить null Array с любым прямоугольником:/Я буду отмечать ваш ответ как решение, когда я выясню, как его исправить и убедитесь, что он работает :) – urban07

+0

Пожалуйста, откройте новую тему вопроса как задайте другой вопрос. Предоставьте столько информации, сколько вы можете предоставить, чтобы получить наилучшие результаты при переполнении стека. – Fish

+0

Хорошо. Спасибо за помощь! – urban07