package com.matimdev.manager; import org.andengine.engine.Engine; import org.andengine.engine.camera.Camera; import org.andengine.opengl.texture.TextureOptions; import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas; import org.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory; import org.andengine.opengl.texture.atlas.bitmap.BuildableBitmapTextureAtlas; import org.andengine.opengl.texture.atlas.bitmap.source.IBitmapTextureAtlasSource; import org.andengine.opengl.texture.atlas.buildable.builder.BlackPawnTextureAtlasBuilder; import org.andengine.opengl.texture.atlas.buildable.builder.ITextureAtlasBuilder.TextureAtlasBuilderException; import org.andengine.opengl.texture.region.ITextureRegion; import org.andengine.opengl.vbo.VertexBufferObjectManager; import org.andengine.util.debug.Debug; import com.matimdev.GameActivity; /** * @author Mateusz Mysliwiec * @author www.matim-dev.com * @version 1.0 */ public class ResourcesManager { //--------------------------------------------- // VARIABLES //--------------------------------------------- private static final ResourcesManager INSTANCE = new ResourcesManager(); public Engine engine; public GameActivity activity; public Camera camera; public VertexBufferObjectManager vbom; //--------------------------------------------- // TEXTURES & TEXTURE REGIONS //--------------------------------------------- //--------------------------------------------- // CLASS LOGIC //--------------------------------------------- public void loadMenuResources() { loadMenuGraphics(); loadMenuAudio(); } public void loadGameResources() { loadGameGraphics(); loadGameFonts(); loadGameAudio(); } private void loadMenuGraphics() { } private void loadMenuAudio() { } private void loadGameGraphics() { } private void loadGameFonts() { } private void loadGameAudio() { } public void loadSplashScreen() { } public void unloadSplashScreen() { } /** * @param engine * @param activity * @param camera * @param vbom * <br><br> * We use this method at beginning of game loading, to prepare Resources Manager properly, * setting all needed parameters, so we can latter access them from different classes (eg. scenes) */ public static void prepareManager(Engine engine, GameActivity activity, Camera camera, VertexBufferObjectManager vbom) { getInstance().engine = engine; getInstance().activity = activity; getInstance().camera = camera; getInstance().vbom = vbom; } //--------------------------------------------- // GETTERS AND SETTERS //--------------------------------------------- public static ResourcesManager getInstance() { return INSTANCE; } }
画像、フォント、音声の読み込みをそれぞれ個別に行うメソッドと、テクスチャの読み込み解除を行うメソッドと、テクスチャを再度読み込むメソッドもあります(メニューシーンとゲームシーンを切り替える間のメモリを節約するために必要)。 また、 prepareManager メソッドもあります。このメソッドではマネージャーに必須パラメータを割り当てます。 ゲームを初期化する際にはこれを使用する必要があります。
private ResourcesManager resourcesManager;ResourcesManagerを初期化して、onCreateResources内で必須パラメーラを渡します。以下のようになります:
public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws IOException { ResourcesManager.prepareManager(mEngine, this, camera, getVertexBufferObjectManager()); resourcesManager = ResourcesManager.getInstance(); pOnCreateResourcesCallback.onCreateResourcesFinished(); }
これで、リソースマネージャーを使用する準備ができました。それでは次の記事を参照してください。SceneManager クラスを使ったscene 管理を紹介しています。
前の記事 | 次の記事 |