プレイ日記
BGGETをどのようにすれば、スプライトとBGの当たり判定ができるんですか。(DATA文じゃない方)
6そうだね
プレイ済み
返信[1]
親投稿
ΖΕΧ ZEX256
BGGETは指定座標のBGキャラ番号を取得する関数です。 スプライトの座標を渡してあげれば、そこのBGキャラ番号を知ることができる。 あとは煮るなり焼くなり好きになさればいい
0そうだね
プレイ済み
返信[2]
親投稿
ほしけん Hosiken
以前他の人のために作ったサンプルをどうぞ。公開キー 42EXEN3V
2そうだね
プレイ済み
返信[3]
親投稿
とても分かりやすいです。 ちなみに、BGに当たったら進めなくするには、どこをどういじれば良いのでしょう。
0そうだね
プレイ済み
返信[4]
親投稿
IF BGGETの所でしょうか。
0そうだね
プレイ済み
返信[5]
親投稿
ほしけん Hosiken
はいそうです。 SPCOLORで赤くしているところを進めなくする処理に変えてください。、
0そうだね
プレイ済み
返信[6]
親投稿
進めなくする処理をいろいろやっているんですけど出来ません。 どうすれば良いでしょう?
0そうだね
プレイ済み
返信[7]
親投稿
ほしけん Hosiken
不完全ですけど、とりあえず修正してみるなら、 2行あるIFを1行にする。 そのTHENのあとでXとYの両方を戻す。(X=P_P:Y=O_O) でどうですか? 今だとXだけを戻してから再度判定しているせいでおかしくなってそうです。
0そうだね
プレイ済み
返信[8]
親投稿
やってみました。 まだ進めなくなっていません。 他に方法はありますか。
0そうだね
プレイ済み
返信[9]
親投稿
ほしけん Hosiken
アレーおかしいですね…こっちで試してみたらちゃんと引っかかったんです 念のため、セーブして公開キー発行していただけます?
0そうだね
プレイ済み
返信[10]
親投稿
ほしけん Hosiken
あっ、今のプログラムはスライムの中心1点しかひっかからないのですが、それではだめということですか? あたり判定を大きくするには、左上、右上、左下、右下の4点でBGGETしなければなりません。
0そうだね
プレイ済み
返信[11]
親投稿
そうなんですか! それは、BGGETの命令でやるんですか。
0そうだね
プレイ済み
返信[12]
親投稿
ほしけん Hosiken
スライムとブロックの大きさが16で、中心点はいま8,8にあるので、X,Yともに、-8か8ずつ座標をずらしたBGGETを4パターンやります
0そうだね
プレイ済み
返信[13]
親投稿
ほしけん Hosiken
> -8か8ずつ座標をずらしたBGGETを4パターンやります 8だと1ブロック幅に引っかかるので、やっぱり6ぐらいのほうがいいかも
0そうだね
プレイ済み