こんばんは☆
ただいまこのサイトを見せていただきながら、ゲームを作らせて貰ってます。
ちょっと分かんない所があるんですけど、誰か教えてくれませんか?
ちなみに私の家にあるパソコンは
コンパイラ Visual C ++
OS windows xp
です。
今、行けない場所を作るって所をやっているんですけど、
int hantei[20] = { 1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 } ;
int can_or_cannot(int x,int y,int muki){//進む方向が通れるか通れないかを判定
if(muki==1)//左向きなら
if(hantei[x/32-1]==1)//通れないなら
return 1;//エラー
if(muki==3)//右向きなら
if(hantei[x/32+1]==1)//通れないなら
return 1;//エラー
return 0;//正常
}
っていうプログラムあるじゃないですか、
そこで hantei[x/32-1]==1 の意味がちょっと分かんないんですけど・・・
なんか素人質問でごめんなさい (XoX)↓↓
誰か教えてくれませんか??
教えてください・・・
-
管理人
Re:教えてください・・・
例えば今キャラが、(32)の座標にいるとしましょう。 ひとますが、(32pixel)で出来ているとします。すると □■□ この真ん中のところにいますね? この時、キャラの座標は ch.x == 32 という事です。これは今どこの配列要素に属しているかというと、 hantei[ch.x/32] つまり hantei[1] に属しています。 [1]より左は[0]です。 左に向かって歩く時、自分のいる地点より左の配列要素に何が入っているかは hantei[ch.x/32-1] つまり hantei[0] を調べればいいことになります。 つまり自分今いるとこより左を意味しているのです。 [0]に0がはいっていれば、進める、1が入っていれば進めないとすればいいのです。 ただこれにはエラー処理というか、付け加えなければならない部分があって、 自分の座標が0の時、配列要素番号[-1]をさしてしまう事になります。 同様に、プラスの方向も、用意した配列番号以上をささないようにしてください。