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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
黒猫

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

#1

投稿記事 by 黒猫 » 13年前

場所をお借りします。

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 13年前

当たり判定というか、中心からの距離を調べるだけの気がします。
超えたら内部にいるように補正すると言うことですよね?

球面内部で滑る感覚はよく分からないでの、もう少し具体的に説明をお願いします。
当たる角度で滑り方が変わるのとか、完全に垂直衝突だとどうなるの?とか。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

黒猫

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

#3

投稿記事 by 黒猫 » 13年前

完全に垂直に衝突した場合、その当たった座標で止まります。
当たった角度によって滑るようにしたいです。このとき摩擦などは無いようにしてほしいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#4

投稿記事 by softya(ソフト屋) » 13年前

移動ベクトルを完全に球面の衝突点の面と平行となるように変換すると言うことでしょうか?
だと衝突点の座標を求めることはできますか?線分と球面の交点を求めます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る