トピック
プヨニャン gamebaka-hiro

BGの当たり判定へ質問!

今度RPGのようなものを作るんですが、BGで家の壁を作ってスプライトを動かせるようにして、囲いを作りたかったのですが、当たり前のようにスプライトはBGの壁をすり抜けてしまいます。どうすればいいのか教えていただけませんか?
1そうだね
プレイ済み
返信[1]
親投稿
YUUKI m348yuuki
BGの辺り判定はBGGETという、命令を使います。 実は、自分はBGとの辺り判定を使ったことがないのでわからないので、 エディット画面でBGGETと入力して「?」で自分で、見てみてください(汗)すいません
0そうだね
プレイ済み
返信[2]
親投稿
すら Kagpro
自分のキャラの座標をX,Yとして 例えば左に動く時は自分のキャラのX座標+aの所にあるBGを調べてもしもBGがあるなら移動させない様にさせればいいと思います。 なのでこの場合は(BGGETだけ書きます) 変数=BGGET(判定したいレイヤー,X+a,Y,座標系フラグ) でいいと思います。
0そうだね
プレイ済み
返信[3]
親投稿
ΖΕΧ ZEX256
BASIC自体には壁という概念が無いので、 壁をすり抜けない方法は、貴方の作るプログラムによって、 貴方が壁と考えるBGキャラの位置に、 自キャラが入り込まないように 自キャラの移動を制限することで実現できます。 で、指定座標にあるBGのキャラクタ番号を調べるのがBGGETです。
0そうだね
プレイ済み
返信[4]
親投稿
ΖΕΧ ZEX256
では、どう制御すれば壁に入り込まないようにできるのか少々説明します、 キャラクタをボタン動作で移動させる場合、次の手順を踏みます。 ボタン入力→自キャラの座標を移動計算→自キャラの座標に自キャラ表示 この「自キャラの座標を移動計算」の前に、 ボタンを押した先の座標にあるBGキャラクタ番号を調べ、 その番号が、貴方の考える壁の番号だったら、自キャラの座標を進めない。 とすることで壁に入らないようにできます。
0そうだね
プレイ済み
返信[5]
親投稿
ΖΕΧ ZEX256
BGGETは、2種類の座標系が指定できます。 座標系フラグ(省略時0) 0: X,Y座標をBGスクリーン座標(キャラ単位)とする 1: X,Y座標を画面座標(ドット単位)とする キャラの移動が16ドット単位のざっくりした動きであれば 座標系フラグ:0で、比較的簡単に制御できます。 キャラクタ単位の座標であるため、 スプライトのX,Y座標を1/16にしたX,YをBGGETに指定し、 一回チェックすれば済みます。
0そうだね
プレイ済み
返信[6]
親投稿
ΖΕΧ ZEX256
座標系フラグ:1だと、、眠い スクリーン座標であるため、スクロールしてても画面の座標です。 それと、コツは四方をチェックすること、、、なんだけど、ねむい ばいばーい、頑張って
0そうだね
プレイ済み
返信[7]
親投稿
プヨニャン gamebaka-hiro
ありがとうございます!やってみます!!
0そうだね
プレイ済み