教えてください・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
K子

教えてください・・・

#1

投稿記事 by K子 » 18年前

こんばんは☆
ただいまこのサイトを見せていただきながら、ゲームを作らせて貰ってます。

ちょっと分かんない所があるんですけど、誰か教えてくれませんか?

ちなみに私の家にあるパソコンは
  コンパイラ 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:教えてください・・・

#2

投稿記事 by 管理人 » 18年前

例えば今キャラが、(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]をさしてしまう事になります。
同様に、プラスの方向も、用意した配列番号以上をささないようにしてください。

閉鎖

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