さぁ、今回はMapの表示について話します
今やっているアクションゲーっぽい奴のMapは
配列でとっています
配列って言うのは同じデータ型の集まりのことを言います
とりあえずこんな感じでとっています
char g_aMap1[]=
{ 0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,3,3,0,0,0,0,0,0,0,0,0,0,0,3,1,
1,1,1,2,1,0,0,0,0,0,0,0,0,0,3,1,
0,0,0,2,0,0,0,0,0,0,0,0,0,1,1,1,
0,0,0,2,0,0,0,0,0,0,0,1,0,2,0,0,
1,1,1,1,1,1,0,0,0,0,1,1,1,2,0,0,
0,0,0,0,0,3,3,3,0,0,0,0,0,2,0,0,
0,0,0,0,0,1,1,1,0,0,0,0,0,2,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,
0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,3,
1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
確か192個だったかなこの中で40*40の画像を表示していって
Mapを作っています、ここでは1がブロック2が梯子3がチェリーです
0は何も無いという意味で黒く塗りつぶされています
Mapをどのように表示しているかといいますとfor文とif文を使っています
for(int n=0;n<16*12;n++)
{
if(1==g_aMap1[n])
{
SelectObject(hComdc,hbmpMask);
BitBlt(hdcBB,n%16*40,n/16*40,40,40,hComdc,0,160,SRCPAINT);
SelectObject(hComdc,hbmp);
BitBlt(hdcBB,n%16*40,n/16*40,40,40,hComdc,0,160,SRCAND);
}
となっています簡単に説明しますと
for文で16*12ですから192回繰返しますそしてif(1==g_aMap1[n])で
そこの配列が1だった場合そこにブロックを表示するってことです
これで大分お分かりになられましたか?
Mapの表示は今の段階これしか知りません
もっと知ってるぞとかもっと教えてとかコメントしてください(´・ω・)