自分で調べたところ、どうやら敵の情報が初期化されていないようでした。
処理は関係のある個所はだいたい以下のようになっているのですが、もしわかりましたらコメントお願いいたします。
一応新・C言語 ~ゲームプログラミングの館~の分割コンパイル(2)や(3)あたりを参考にしています。
//ダンジョンシーンに移ったとき呼ばれる
Dungeon::Dungeon(ISceneChanger* changer) : BaseScene(changer){
aEnemy = new Enemy[20]; //ヘッダで宣言 Enemy *aEnemy
}
void Dungeon::Initialize(){
int x = 0;
int y = 0;
for(int n = 0; n<20; n++){
mEnemy.Initialize( &aEnemy[n], n, x, y);
}
}
void Enemy::Initialize(Enemy *enemy, int ID, x, y){
enemy->eneID = ID; //Enemyのメンバ
enemy->eneX = x;
enemy->eneY = y;
enemy->eneName = mEData.Name[ID]; //Enemyクラスが持つ敵の情報に関するクラスのメンバで、IDに対応。
//このmEDataのメンバには情報が入っていることを確認済み。しかし代入されない
...
}
Initializeがいろんなクラスで被るうえ、他の関数にも影響が出るためstatic関数にはしていません。
staticなのはmEDataぐらいです。
DungeonがEnemyをもち、EnemyがmEDataを持っていることになります。