我是一个新手,对于安卓开发和AndEngine都不熟悉。我想使用AndEngineTexturePackerExtension来制作动画精灵,但是我不确定如何为动画精灵创建tiledTextureRegion。下面是我正在尝试的代码,这些代码来自指南和论坛中的其他帖子。我正在使用texturepacker创建xml、png和java文件。
private TexturePackTextureRegionLibrary mSpritesheetTexturePackTextureRegionLibrary;
private TexturePack texturePack;
try
{
TexturePackLoader texturePackLoader = new TexturePackLoader(activity.getTextureManager());
texturePack = texturePackLoader.loadFromAsset(activity.getAssets(), "spritesheet.xml");
texturePack.loadTexture();
mSpritesheetTexturePackTextureRegionLibrary = texturePack.getTexturePackTextureRegionLibrary();
}
catch (TexturePackParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
TexturePackerTextureRegion textureRegion = mSpritesheetTexturePackTextureRegionLibrary.
get(spritesheet.00000_ID);
TiledTextureRegion tiledTextureRegion = TiledTextureRegion.create(texturePack.getTexture(),
textureRegion.getSourceX(), textureRegion.getSourceY(),
textureRegion.getSourceWidth() , textureRegion.getSourceHeight() ,
COLUMNS, ROWS);
AnimatedSprite sprite = new AnimatedSprite((activity.CAMERA_WIDTH - tiledTextureRegion.getWidth()) / 2,
(activity.CAMERA_HEIGHT - tiledTextureRegion.getHeight()) / 2,
tiledTextureRegion, activity.getVertexBufferObjectManager());
问题在于我不理解COLUMNS和ROWS的值是从哪来的?精灵表本身的行与列是不规则的,因为它包含旋转的精灵等。所以我很困惑这些值是怎么来的。如果有任何帮助使这个工作起来将会是非常好的,谢谢。
编辑:好吧,如果我只是使用纹理打包器中的基本算法而不是MaxRects算法,我就可以让精灵表动画工作。但这并没有充分利用表中的所有空间,所以我更愿意使用一个MaxRects生成的精灵表。我看到在xml中传递了一个布尔值,用于判断是否旋转,所以信息在那里,可以使它起作用,但我无法弄清楚如何使用texturepackertexture region制作一个动画精灵,当一些纹理在表上被旋转时。