ページ 11

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

Posted: 2016年1月13日(水) 19:43
by もるも
お世話になっております。
今回マップチップの描画について聞きたいことがあります。
本やサイトを見て下のコードように書いているのですが、
マップチップの量が多く、オブジェクトチップも含めるととても長くなってしまいます(チップの数が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;
     }
  }
}
よろしくお願いします。

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

Posted: 2016年1月13日(水) 19:50
by usao
いまいち意味がわかりませんが,提示コードでは
case 1 の場合と case 2 の場合との差が,mapgh[]の[]の中の値しか無いように見えます.

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

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

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

Posted: 2016年1月13日(水) 20:16
by もるも
usaoさん
まさにそれです!
switch文で長々と書かなくてもいい方法を聞きたかったんです。
ありがとうございました。