そこで、ある問題にぶつかりました。
あるオブジェクトをsoftyaさんのRPG作成講座を参考にしながら制作しました。
// アクターのパラメータ一式
struct tag_ActorParamObject
{
int hp,hp_max; // 体力
int mp,mp_max; // 魔力
int pow,def,mag,sec; // 攻撃力,防御力,魔法攻撃力,魔法防御力
int State; // 状態異常
int ItemStack; // アイテムスタック+1
int ActPos_x,ActPos_y; // アクターマップ座標
int GHandle; // グラフィックハンドル
};
HPが0などのフラグがたったらfreeで消滅させるプログラムを書いています。
そしてこれらのオブジェクトを表示させようとします。
ですが、このオブジェクトはグローバルでもないですし、
引数に全部書く・・・というのもオブジェクトの数は一定ではないので良いとも思えません。
この場合、どのようにすべてのオブジェクトのメンバActPosにアクセスできるようにすればよいのでしょうか。
ご教授をよろしくお願いします。
マップ描画にはこちらで作ったクラスClassDungeon::DrawMapにて
マップのメタ情報の入っている2次元配列をfor分で読みだす構造にしてます。
int ClassDungeon::map_data[10][10] = {{0,0,0,0,0,0,0,0,0,0},
{0,0,0,1,1,1,0,0,0,0},
{0,0,0,1,3,1,0,0,0,0},
{0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,2,0,0,0,0,0},
{0,0,0,0,2,0,0,0,0,0},
{0,0,0,0,2,0,0,0,0,0},
{0,0,0,0,2,0,0,0,0,0},
{0,0,0,0,2,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0}}; // テスト用マップデータ
/* 画像読み込み他無関係関数省略 */
int ClassDungeon::DrawMap( void )
{
int i,j;
for(j=0;j<10;j++)
{
for(i=0;i<10;i++)
{
DrawGraph(i*64,j*64,MapGraph[ map_data[j][i] ],TRUE);
}
}
return 0;
}
使用環境は、Win7 64bit ・ VS2010Express です。
追記:
書き忘れました、DXライブラリを使用しています。