//地形の線分より下にあるか調べ、その長さを返す
private float CheckLine( Vector3 _cPos, Vector2[] _line,float _offsetY){
bool inv = false; //上り下り反転フラグ
float ret = 0;
float px = 0;
float py = 0;
float x1 = 0;
float y1 = 0;
px = _cPos.x % 1;
py = _cPos.y % 1;
//Y軸の距離を出す
y1 = _line[1].y - _line[0].y;
//平行の場合
if( y1 == 0) return 1 - py;
//下り坂ならフラグを立てる
if( y1 < 0) inv = true;
//X軸の距離を出す
x1 = _line[1].x - _line[0].x;
//上り坂の場合(高さが+)
if( inv != true){
//Y位置と線分の高さを計算する
ret = py - (y1 / x1) * px + _offsetY;
if( ret > 0)
return 0;
return ret;
}
//Y位置と線分の高さを計算する
ret = py - (y1 / x1) * px - _offsetY;
//下り坂の場合(高さが-)
if( ret > 0)
return 0;
return ret;
}