Obecnie mam statyczne odniesienie do wszystkich moich sprite'ów i ładuję je i inicjuję w moim OnCreateResource mthod of SimpleBaseGameActivity, Ale teraz muszę przesłonić na Attitude Attendant na spirtes i sposób w jaki może zmienić to podczas Inicjowania Sprite. Ale mam statyczną metodę tworzenia Atlasu i regionu tekstur dla każdego sprite'a. Używam tych ikonek w mojej klasie scen i chcę je zastąpić w aplikacji AreaTouched. Mogę zarejestrowaćTouchArea dla tej konkretnej ikonki w mojej scenie, aby można było to zrobić Ale chcę Nadpisać OnAreaTouched w taki sposób, aby możliwe było ponowne wykorzystanie kodu. Oto jak obecnie tworzę i ładuję sprite.Najlepsza praktyka używania Sprites w grze przy użyciu AndEngine GLES2
defualtCageSprite = createAndLoadSimpleSprite("bg.png", this, 450, 444);
I to jest moja metoda 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;
}
Teraz, w jaki sposób można zastąpić onAreaTouched dla niektórych duszków, nie tracąc przy tym możliwości ponownego użycia kodu.
jaki powinien być rozmiar atlasu, a następnie jeśli załaduję wszystkie wymagane tekstury do pojedynczego atlasu? Co będzie zaletą korzystania z pojedynczego atlasu, a przy okazji, co masz na myśli przez czas pracy, zainicjuję wszystkie sprite'y na createResources mojego silnika, a następnie wykorzystam je później w mojej aplikacji. – Waqas
I po prostu nie muszę animować ikonki na onTouch, muszę nazywać różne metody mojego Modelu według różnych duszków. – Waqas
Rozmiar atlasu zależy od rozmiaru używanych obrazów, na przykład potrzebuję 1024x512. Zaletą jest mniejsze zużycie pamięci i szybsze renderowanie. Przez środowisko wykonawcze miałem na myśli czas uruchomienia aplikacji. Możesz użyć BlackPawnTextureBuilder, który umieści tekstury na atlasie, tak abyś nie musiał tego robić ręcznie.Używając mojego podejścia możesz robić co chcesz, nie jest to ograniczone animowaniem sprite'ów. – JohnEye