精灵附加到场景无意

时间:2014-12-22 21:59:09

标签: android andengine

我有三个TextureRegions,就像这样创建:

mBackgroundTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(mMenuTextureAtlas, pActivity, "menu_background.png", 0, 0);
mPlayBtnTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(mMenuTextureAtlas, pActivity, "play_btn.png", 50, 100);
mExitBtnTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(mMenuTextureAtlas, pActivity, "exit_btn.png", 50, 200);

我也为每个TextureRegion创建了相应的精灵,它们是这样创建的:

mBackgroundSprite = new Sprite(0, 0, mBackgroundTextureRegion, mBufferObjectManager);
mPlayBtnSprite = new Sprite(0, 0, mPlayBtnTextureRegion, mBufferObjectManager);
mExitBtnSprite = new Sprite(0, 0, mExitBtnTextureRegion, mBufferObjectManager);

当我将mBackgroundSprite附加到这样的场景时:

mScene.attachChild(mBackgroundSprite);

我希望只有mBackgroundTextureRegion出现在场景中(即“menu_background.png”),但实际上会出现所有三个TextureRegions(即mPlayBtnTextureRegionmExitBtnTextureRegion它们的位置也分别是(50,100)和(50,200)。

我的问题是:

一个。为什么会这样? (它与所有TextureRegions使用相同的纹理有关吗?)

B中。在场景中只显示一个TextureRegion的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这与纹理图集没有任何关系。这或多或少是正确的做法。屏幕上不应显示任何内容,除非它们作为孩子附着在某物(场景或引擎)上。如果您需要更直接的帮助,请上传您正在加载精灵的代码部分。