- 締切済み
機能実装で困っています
下記のような機能を実装したいのですが、うまくいかなく悩んでいます。 まず領域外からシャボン玉のように丸がふわふわでてきてその後、領域内をランダムに動きまわります。 そのとき、丸同士や枠に衝突すると跳ね返るという動作をしたいです。 どなたかヒントでもいいので教えていただくと助かります。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- amanojaku1
- ベストアンサー率54% (265/488)
回答No.3
> 漂う感じ 実際に表示してみないと なんとも言えないですが「ランダム+sin波」とか どうでしょうか。
- amanojaku1
- ベストアンサー率54% (265/488)
回答No.2
> 丸が下からでて途中でとまり漂うという記述はどういう風に書けばいいのでしょうか? その丸の個々に「Drift(漂う)」フラグを持たせ、(漂わす)その辺りの座標に到達したか if 文で判定し、その丸に「Drift(漂う)」フラグを ON にする。 「Drift(漂う)」フラグが ON の丸だけを漂わす。
- trytobe
- ベストアンサー率36% (3457/9591)
回答No.1
衝突判定は簡単なのですが、跳ね返りの処理が面倒ではあります。 衝突は、 ・壁とシャボン玉の中心との距離が、シャボン玉の半径以下になったとき、 ・他のシャボン玉の中心と、そのシャボン玉の中心との距離が、シャボン玉の半径の2倍(互いの半径の合計)以下になったとき 跳ね返る方向は、 ・シャボン玉どうしなら、中心どうしを結んだベクトル C→ に対して、運動ベクトル v→ を線対称に折り返すために、内積 C→・v→ = |C→| |v→| cosθ (θ>90度)を C→・v´→ = |C→| |v→| cos(180-θ) (θ>90度)となるような 運動ベクトル v´→ にする。 ・壁が相手の場合は、壁の法線ベクトルを、上に C→ として同じ処理。
補足
すみません 丸が下からでて途中でとまり漂うという記述はどういう風に書けばいいのでしょうか?