AnimatedSprite 显示尺寸错误

AnimatedSprite displays with wrong size

抱歉,如果之前有人问过这个问题。我四处搜索,但没有找到任何相关线索,所以我 post 在这里提出问题。

我是 Andengine 的新手。我正在尝试加载一个 Tiled Sprite 并用它创建一个动画。 这是我的代码:

public void loadGameResources() {
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/player/");
    mSapoTextureAtlas = new BitmapTextureAtlas(mActivity.getTextureManager(),256,178,TextureOptions.DEFAULT);
    mPlayerDownITiledTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mPlayerTextureAtlas, mActivity.getAssets(), "player.png", 0,0,3,1);
    mPlayerTextureAtlas.load();

}

我期望的是玩家可以做一些动作,比如走路,但我不会。请查看随附的屏幕截图以查看真实结果。我认为我的代码将原始纹理分成 3 个部分,而不是只在第一行分割 3 个精灵。

请查看并帮助我解决此问题。非常感谢!

这是我创建动画的方式:

AnimatedSprite player= new AnimatedSprite(100,100,40,40,mResourceManager.mPlayerDownITiledTextureRegion,mVertexBufferObjectManager);
player.animate(500);
player.setZIndex(100);
attachChild(sapo);

我的理解是,您想在每个方向正确设置播放器的动画。为此

按图书馆方法

BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(pBitmapTextureAtlas, pAssetManager, pAssetPath, pTextureX, pTextureY, pTileColumns, pTileRows);

您的代码将更改如下

mSapoTextureAtlas = new BitmapTextureAtlas(mActivity.getTextureManager(),256,256,TextureOptions.DEFAULT);
mPlayerDownITiledTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mPlayerTextureAtlas, mActivity.getAssets(), "player.png", 0,0,3,4);

要使玩家在不同方向上动画,请使用此技术 定义一个数组为

long[] ANIMATE_DURATION = new long[] { 200, 200, 200 };

AnimatedSprite player = new AnimatedSprite(x, y, this.mPlayerTextureRegion,this.getVertexBufferObjectManager());



// Down
player.animate(ANIMATE_DURATION, 0, 2, true);
// Up
player.animate(ANIMATE_DURATION, 9, 11, true);
// Right
player.animate(ANIMATE_DURATION, 6, 8, true);
// Left
player.animate(ANIMATE_DURATION, 3, 5, true);

查看此 Example 了解更多信息。

有疑问可以问我。希望这对您有所帮助!

首先:Atlas 应该是 2 的幂,因此将其大小更改为 256x256。 第二个:

  mPlayerDownITiledTextureRegion = BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(mPlayerTextureAtlas, mActivity.getAssets(), "player.png", 0,0,3,1);

最后两位数字表示您有多少行和多少列。您声明了 3 列和 1 行。

三:仅当您有这么多层时才需要 100 的 Zindex。如果不是你不需要它。