とりあえず空っぽのクラスを作ります。
package <パッケージ名>; import java.util.Vector; import <パッケージ名>.DrawDevice; import <パッケージ名>.Texture; // テクスチャリソース public class TextureResource { // テクスチャタイプ public enum TEXTURE_TYPE { CHARA, MENU, } // コンストラクタ public TextureResource( AppResource appRes, DrawDevice drawDevice ) { m_AppRes = appRes; m_DrawDevice = drawDevice; m_LoadTexInfoVec = new Vector< TextureInfo >(); } // ロード済みテクスチャ情報 private class TextureInfo { // コンストラクタ public TextureInfo( String fileName, TEXTURE_TYPE type ) { m_FileName = fileName; m_Type = type; m_Tex = null; } // テクスチャ設定 public void SetTexture( Texture tex ) { m_Tex = tex; } public Texture GetTexture() { return m_Tex; } // 比較 public boolean TypeEqual( TEXTURE_TYPE type ) { return m_Type.equals( type ); } public boolean Equal( TextureInfo rhs ) { return ( m_FileName.equals( rhs.m_FileName )) && ( m_Type.equals( rhs.m_Type )); } private String m_FileName; private TEXTURE_TYPE m_Type; private Texture m_Tex; } // タイプに応じたディレクトリ取得 private String _GetDirectory( TEXTURE_TYPE type ) { switch( type ) { case CHARA: return "model/chara"; case MENU: return "model/menu"; default: return ""; } } private AppResource m_AppRes; private DrawDevice m_DrawDevice; private Vector< TextureInfo > m_LoadTexInfoVec; }
TEXTURE_TYPEがテクスチャのタイプです。
今回はキャラとメニューを用意してみます。
TextureInfoは読み込んだテクスチャの情報です。
ファイル名やタイプも覚えておきます。
_GetDirectoryメソッドでタイプに応じたディレクトリを取得します。
このリストも外から指定したほうがよさそうですが今はこれで行きます。
では、次はロードを実装してみましょう。