ページ 11

球体内部をエリアとした時の当たり判定の作り方を教えてください!

Posted: 2013年3月23日(土) 21:22
by 黒猫
場所をお借りします。

C++とDXLIBでプログラムを組んでいます。

球体の内部で戦う3D対戦型ゲームにしようと考えていますが、球体の内側から出ないよう当たり判定を付けたいのです。ただ出ないだけでなく、壁に当たりながら滑るように移動もさせたいです。

私も試行錯誤したのですが、上手くつくることができませんでした。
情報不足ですが、皆さんのお力が必要です。どうか助けてください!

Re: 球体内部をエリアとした時の当たり判定の作り方を教えてください!

Posted: 2013年3月23日(土) 21:44
by softya(ソフト屋)
当たり判定というか、中心からの距離を調べるだけの気がします。
超えたら内部にいるように補正すると言うことですよね?

球面内部で滑る感覚はよく分からないでの、もう少し具体的に説明をお願いします。
当たる角度で滑り方が変わるのとか、完全に垂直衝突だとどうなるの?とか。

Re: 球体内部をエリアとした時の当たり判定の作り方を教えてください!

Posted: 2013年3月23日(土) 22:14
by 黒猫
完全に垂直に衝突した場合、その当たった座標で止まります。
当たった角度によって滑るようにしたいです。このとき摩擦などは無いようにしてほしいです。

Re: 球体内部をエリアとした時の当たり判定の作り方を教えてください!

Posted: 2013年3月23日(土) 22:19
by softya(ソフト屋)
移動ベクトルを完全に球面の衝突点の面と平行となるように変換すると言うことでしょうか?
だと衝突点の座標を求めることはできますか?線分と球面の交点を求めます。