textures de charge avec TexturePacker (AndEngine)
-
28-10-2019 - |
Question
J'utilise TexturePacker. J'emballé mes textures et j'ai ce fichier:
-
sample.png
-
sample.tps
-
sample.xml
-
sample.java
Ces ressources sont assets/gfx/sample
. Je me suis connecté au projet sample.java
.
J'ai ce code:
Textures.java
public class Textures {
private ITexture mSpritesheetTexture;
private TexturePackTextureRegionLibrary mSpritesheetTexturePackTextureRegionLibrary;
private TextureRegion faceTextureRegion;
private TexturePack spritesheetTexturePack;
public Textures(final BaseGameActivity activity, final Engine engine) {
try {
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
this.spritesheetTexturePack = new TexturePackLoader(activity, "sample/").loadFromAsset(activity, "faces.xml");
this.mSpritesheetTexture = spritesheetTexturePack.getTexture();
this.mSpritesheetTexturePackTextureRegionLibrary = spritesheetTexturePack.getTexturePackTextureRegionLibrary();
this.faceTextureRegion = this.mSpritesheetTexturePackTextureRegionLibrary.get(faces.FACES_ID);
engine.getTextureManager().loadTexture(this.mSpritesheetTexture);
} catch (final TexturePackParseException e) {
Log.e("Error", String.valueOf(e));
}
}
public TextureRegion getT(){
return faceTextureRegion;
}
}
Main.java
...
Textures textures;
...
@Override
public void onLoadResources() {
textures = new Textures(this, getEngine());
}
Définir sprite et je reçois une erreur sur cette ligne:
final Sprite spriteS = new Sprite(50, 50, textures.getT());
E/AndroidRuntime(391): Caused by: java.lang.NullPointerException
E/AndroidRuntime(391): at com.web.scene.AboutScene.<init>(AboutScene.java:24)
Quelle est mon erreur?
La solution
Je suppose que le problème est que vous essayez d'initialiser le Sprite spriteS
avant onLoadResources()
est exécutée.
Quelque chose comme cela peut vous aider à:
Textures textures;
Sprite spriteS;
...
@Override
public void onLoadResources() {
textures = new Textures(this, getEngine());
spriteS = new Sprite(50, 50, textures.getT());
}
Vous pouvez également déplacer le sprite d'initialisation à la méthode où la scène est créée.
P.S. Il est le code exemple. Il ne vise pas à fournir un style propre ou bien.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow