目前我有靜態引用所有我的精靈並加載和初始化他們在我的SimpleBaseGameActivity的OnCreateResource方法,但現在我必須重寫onAreaTouched偵聽器spirtes和我的方式可以在初始化Sprite時覆蓋它。但我有一個靜態方法爲每個精靈創建Atlas和Texture Region。我在場景類中使用這些精靈,我想在那裏覆蓋onAreaTouched。我可以在我的場景中爲該特定的精靈註冊觸摸區域,這樣就可以完成但我想以一種方式覆蓋OnAreaTouched,以便可以完成代碼重用。 這是我目前如何創建和加載精靈。使用AndEngine GLES2在遊戲中使用Sprites的最佳實踐
defualtCageSprite = createAndLoadSimpleSprite("bg.png", this, 450, 444);
而這是我的方法createAndLoadSimpleSprite。
public static Sprite createAndLoadSimpleSprite(String name,
SimpleBaseGameActivity activity, int width, int height) {
BitmapTextureAtlas atlasForBGSprite = new BitmapTextureAtlas(
activity.getTextureManager(), width, height);
TextureRegion backgroundSpriteTextureRegion = BitmapTextureAtlasTextureRegionFactory
.createFromAsset(atlasForBGSprite, activity, name, 0, 0);
Sprite sprite = new Sprite(0, 0, backgroundSpriteTextureRegion,
activity.getVertexBufferObjectManager());
activity.getTextureManager().loadTexture(atlasForBGSprite);
return sprite;
}
現在我怎樣才能重寫onAreaTouched一些精靈,而不會丟失代碼的可重用性。
如果我將所有需要的紋理加載到單個圖集,那麼圖集的大小應該是多少?使用單個圖集有什麼好處,順便說一句,運行時的意思是,我初始化引擎的createResources上的所有精靈,然後在我的應用程序中使用它們。 – Waqas 2012-07-23 09:56:01
我只需要在onTouch上設置動畫精靈,我必須根據不同的精靈調用我的模型的不同方法。 – Waqas 2012-07-23 10:03:14
圖集大小取決於您使用的圖像大小,例如,我需要1024x512。好處是內存消耗更少,渲染速度更快。運行時,我的意思是應用程序運行的時間。您可以使用BlackPawnTextureBuilder將紋理放置到地圖集中,以便您不必手動執行該操作。使用我的方法,您可以隨心所欲地執行任何操作,它不受動畫製作精靈的限制。 – JohnEye 2012-07-23 12:14:19