• ベストアンサー

C#のXNAでゲームを作成中です。

作っているゲームは、ファイヤーエンブレムのようなシミュレーションRPGです。 完全に行き詰りました。 キャラクター選択画面で選択したキャラクターをどうやってゲーム画面に反映させるかです。 10人のキャラクターの中から3人をランダムで決め、そのキャラクターをステージで使うというものなのですが、 今の段階は、String型の配列に10人の画像を入れ、乱数で表示させるという処理を行っています。 どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

何かどう分からないか逆にわからないんですが、こういうことでは? string[] charFileNameArray = { "char0.png", "char1.png", "char2.png", "char3.png", "char4.png", "char5.png", "char6.png", "char7.png", "char8.png" }; int[] charSelect = { 1, 7, 3 }; Texture2D[] charImage = new Texture2D[3]; for( int i = 0; i < charSelect.Length; i++ ) { charImage[i] = Texture2D.FromFile( graphics.GraphicsDevice, charFileNameArray[ charSelect[i] ] ); } 基礎の基礎のコードだと思うのですが、C#はちゃんと勉強されましたか?

その他の回答 (2)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

動作確認してないですが、こういう事では? string[] charFileNameArray = { "char1.png", "char2.png", "char3.png" }; Texture2D[] charImage = new Texture2D[3]; for(int i=0; i<charFileNameArray.GetLength(0); i++) { charImage[i] = Texture2D.FromFile(graphics.GraphicsDevice, charFileNameArray[i]); }

criminal1006
質問者

補足

そんな感じです。 ただ、表示する配列番号の指定が乱数なだけです。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

それはファイル名で画像クラスのインスタンスじゃないですよね? Texture2Dクラスのインスタンスをステージで使うだけではないのでしょうか?

criminal1006
質問者

補足

配列に画像のパスをキャラクタ-分格納しており、 乱数で決定した配列番号のパスを表示メソッドで表示しているという感じです。 ただ、表示されたキャラクターのインスタンスをどう生成すればよいのか、わかりません。 配列番号と列挙型のキャラクターのIDを適応させてやろうかなと思ったのですが、どうもわからずじまいです。