07/02/24 16:15:49 LTRE8EdM.net
>>69
・坂を方程式で表す方法
例えば天井がy=-0.1*x+64の直線と考えれば、
atamay<=-0.1*atamax+64なら当たり。
地面をy=-0.1*x+480の直線と考えれば、
asiy>=-0.1*asix+480なら当たり。
atamax,atamayはキャラの頭の座標。asix,asiyはキャラの足の座標。
画面は640*480を想定。
・小さい矩形に分ける方法
天井も地面も小さい矩形がたくさん集まったものだと考え、それぞれの矩形と
の当たり判定を行う。壁(当たり判定がある地形)があるシューティングとかは
これでやってるはず。
これなら坂はまっすぐでなくてもかまわない。
・色で判定する方法
たとえば壁(当たり判定がある地形)は黄色で描くものと決める。atamax,atamay
の座標の色を読み黄色なら当たり。RGBのRが128以上なら壁とかでもいい
(言語による)。描画処理と当たり判定の順序に気をつける必要がある。地形
を描いて、キャラを描く前に当たり判定を行う。あるいは地形だけ仮想画面に
描くか。
・矩形との当たり判定
天井をたとえば10度傾いた矩形と考える。この矩形をAとする。Aの中心点
を中心として-10度回転させた矩形をBとする。同じように点(atamax,atamay)
を回転させた架空の点の座標を(kakuux,kakuuy)とする。
あとは普通に傾いてない矩形の当たり判定(Bと(kakuux,kakuuy)の当たり判定)
を行うだけ。足と地面も同様。サイン、コサイン、アークタンジェントが分かれば
できる。