我用TexturePacker。我整理了我的纹理,我有这个文件:
sample.pngsample.tpssample.xmlsample.java这些资源是assets/gfx/sample。我连接到sample.java项目。
我有这样的代码:
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());
}定义sprite,我在这一行中得到一个错误:
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)我犯了什么错?
发布于 2012-02-20 12:30:31
我假设问题是在执行Sprite spriteS之前尝试初始化onLoadResources()。
像这样的东西也许能帮到你:
Textures textures;
Sprite spriteS;
...
@Override
public void onLoadResources() {
textures = new Textures(this, getEngine());
spriteS = new Sprite(50, 50, textures.getT());
}您还可以将sprite init移动到创建场景的方法中。
这只是个示例代码。它不是为了提供干净或良好的风格。
https://stackoverflow.com/questions/9361037
复制相似问题