一般是 android dev 和 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 中看到它传递了一个 bool 来进行旋转或不旋转,所以有信息可以使这项工作我无法弄清楚如何。当一些纹理在工作表上旋转时,我如何使用纹理打包器纹理区域制作动画精灵