プレイ日記
この坂に床判定をつけるにはどうしましょうか。
5そうだね
プレイ済み
返信[1]
親投稿
SilverBlue Corei72630QM
IF GSPOIT(X,Y)!=0 THEN ?"HIT" ELSE ?"NO HIT"
3そうだね
プレイ済み
返信[2]
親投稿
よしと bm9007
線との当たり判定なら上の方でOKですが。 >や<を使ってもいいと思います。
1そうだね
未プレイ
返信[3]
親投稿
GSPOITは色を検知するやつですよね。
1そうだね
プレイ済み
返信[4]
親投稿
だにえる haru2016nen
正確には 色の情報(数値)を取得するやつ。 なので 取得した数値が0以外の場合は 「色が付いている」と判断できる。
0そうだね
プレイ済み
返信[5]
親投稿
マップデータを読み込んで出てくる色があるかどうかは分かるんですか?
0そうだね
プレイ済み
返信[6]
親投稿
あと不等号でどうやって床判定作るんですか?
0そうだね
プレイ済み
返信[7]
親投稿
水平な地面なら分かりますが、、、、。
0そうだね
プレイ済み
返信[8]
親投稿
SilverBlue Corei72630QM
一次関数を利用して変化の割合から求めるか、三角関数を利用して位置を取得する。
1そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
当たり判定の方法というのは対象の物体の形状で変わってくるのですが、最も簡単な点とこの線との当たり判定とします。 点というのはキャラの足下の中心座標と考えると分かりやすいでしょう。 単純にGSPOITで色を取得する方法でも問題はないのですが、太さ1ドットの線の場合は移動速度が1フレームあたり1ドットを超えると正しい判定はできなくなります。(斜め方向の線ではさらに遅い速度でも判定ミスが起こる) 当たり判定のそのものを60fpsではなく600fpsで処理するという方法で改善も可能ですが、「線ではなく坂道」ということなので線より下の空間にも当たり判定があるためもっと簡単な改善方法があります。 最も簡単なのはこの線の下側の空間をGPAINTでRGB(0,0,0,0)以外の適当な色で塗りつぶしてください。 そうすればGSPOITで値を取得するだけで簡単に判定が可能です。
2そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
もちろん、計算によって求めることも可能です。この直線は一次関数であり、座標(0,0)と(399,239)を結んでいると思うので概ねY=0.6*Xになっていると思います。 当たり判定を行う点の座標が(100,70)であれば0.6*100と70を比較して70の方が大きいため「線より下に位置する=当たっている」というわけです。 当たり判定を行う物体(点)の座標が(X,Y)ならば「IF 0.6*X>Y THEN 当たったときの処理」となるわけです。(画面外は考慮していないため別途必要になります) 点ではなく矩形(正方形や長方形)との当たり判定であればその4つの頂点を元に判定を行ってください。 当たり判定には様々な方法がありますので自分のゲームに適した方法で行うのが良いでしょう。
3そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
だにえるさんへ プチコン3号ではARGBが実質1bit、5bit、5bit、5bitとなっていますがAが0の時でもR、G、Bが0以外であれば「見た目が透明でありながらGSPOITでは0にならない」という問題が発生してしまいます。 これは一見不便な仕様ですが、実は「見えない当たり判定を付けられる」ということで使い方次第ではすごく便利になったりします。
4そうだね
プレイ済み