大量のマップチップの管理の仕方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

大量のマップチップの管理の仕方

#1

投稿記事 by もるも » 9年前

お世話になっております。
今回マップチップの描画について聞きたいことがあります。
本やサイトを見て下のコードように書いているのですが、
マップチップの量が多く、オブジェクトチップも含めるととても長くなってしまいます(チップの数が200くらい)。
もうちょっとスマートな書き方があれば教えていただけないでしょうか?

コード:

   for(int i=FirstChipY;i<LastChipY;i++){
			for(int j=FirstChipX;j<LastChipX;j++){
				switch(MapData[i][j]){
                    case 1:
						DrawGraph(j*32+m_offsetX,i*32+m_offsetY,mapgh[0],true);
							break;
					case 2:
						DrawGraph(j*32+m_offsetX,i*32+m_offsetY,mapgh[1],true);
							break;
     }
  }
}
よろしくお願いします。

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: 大量のマップチップの管理の仕方

#2

投稿記事 by usao » 9年前

いまいち意味がわかりませんが,提示コードでは
case 1 の場合と case 2 の場合との差が,mapgh[]の[]の中の値しか無いように見えます.

「MapData[j]の値と,この[]内の値との対応付けを switch 文で行うとcaseを200個くらい書く必要がある」
という事を問題にしていますか?

少なくともこの提示コードの範囲内ではswitchを使わずに
mapgh[ MapData[j]-1 ]
とすればそれで済みそうにも見えますが,実際にはそう単純には書けないということでしょうか?

アバター
もるも
記事: 54
登録日時: 9年前
連絡を取る:

Re: 大量のマップチップの管理の仕方

#3

投稿記事 by もるも » 9年前

usaoさん
まさにそれです!
switch文で長々と書かなくてもいい方法を聞きたかったんです。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る