サイトのトップへ戻る

AndEngineドキュメント 日本語訳

ゲームチュートリアル完全版 - part 3. リソースマネージャー:

このクラスは、ゲームリソース(art, fonts, audio) の読み込みや読み込み解除を司っています。 また、最も一般的に必要なオブジェクト(camera, context, engine, VertexBufferObjectManager)への参照も提供します。 このクラスはシングルトンホルダーを使用しており、グローバルレベルでこのクラスにアクセスできます。
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 メソッドもあります。このメソッドではマネージャーに必須パラメータを割り当てます。 ゲームを初期化する際にはこれを使用する必要があります。



1. ResourcesManagerを初期化する:
activity クラスを開き、 ResourcesManagerのフィールドを新規に作成します:
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 管理を紹介しています。

前の記事 次の記事