2015-04-09 3 views
0

Je rencontre des problèmes avec la définition de la texture sur mon TiledMapTile. Il me donne NullPointerException et je ne sais pas pourquoi.La texture de l'ensemble TiledMapTile donne NullPointerException

Voici un code:

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); 
} 

Et voici l'erreur:

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)

qui conduit à cette ligne:

coinTile.setTextureRegion(mapTexture1Region); 
+1

Pouvez-vous poster le tout stacktrace. De plus, où mapTexture1 est-il défini? –

+0

Mise à jour, comme vous le demandiez (je suis nouveau à java - je suppose que par stacktrace vous vouliez dire l'erreur exacte et la ligne de code?) – urban07

+0

Exécutez un journal de débogage rapide pour vérifier que 'Gdx.files.internal (" maps/autre/texture1.png ")' retourne autre chose que 'null' –

Répondre

0

Habituellement, un NullPointerException se produit lorsque vous avez pas initialiser quelque chose dans votre code.

Puisque vous n'avez pas fourni votre code complet, je n'ai pu que donner vos suggestions. Comme ce que vous avez fait

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

Vous devez également

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; 
} 

} 

Par ailleurs lire l'API pour paremeters spcific.

Puisque vous êtes nouveau java lire here pour obtenir une prise de NullPointers

+0

Merci. Lorsque j'ai ajouté le code que vous avez posté, il a cessé de renvoyer nullpointerexception dans coinTile. Cependant, maintenant il donne nullpointerexception quand j'essaye de mettre à jour null Array avec n'importe quel rectangle:/Je marquerai votre réponse comme solution quand je trouverai comment le réparer et m'assurer que cela fonctionne :) – urban07

+0

Veuillez ouvrir un nouveau sujet de question en tant que Posez cette autre question. Fournir autant d'informations que vous pouvez éventuellement fournir afin d'obtenir de meilleurs résultats sur le débordement de la pile – Fish

+0

Très bien, je le ferai. Merci de votre aide! – urban07