シューティングゲーム(非FPS)製作技術総合at GAMEDEVシューティングゲーム(非FPS)製作技術総合 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト105:名前は開発中のものです。 09/09/08 00:36:20 vZNNHCHF がんばってみます。 画面座標と背景座標がややこしい・・・ 106:名前は開発中のものです。 09/09/14 21:21:33 9WCP0mk3 1.A地点からB地点に直線移動 2.C地点からD地点に直線移動 一定の速度で移動、且つ 1と2が同時に出発し、同時に到達する場合、 1と2が最も接近した時の距離ってどうやったら求められますか? この計算ができれば当たり判定が楽なのですが 107:名前は開発中のものです。 09/09/15 00:22:36 6KSuCyNf >>106 計算してみた。長文失礼します。 A, B, C, D の位置ベクトル → a, b, c, d 1, 2 の位置ベクトル → p1, p2 t = 0 で出発、t = 1で到達とすると、 p1 = a + (b - a)t = a + v1・t p2 = c + (d - c)t = c + v2・t と書ける p1-p2 間の距離を L とし、その最小値 min L を求める(実際には、min L^2 を求めればよい) L = abs(p1 - p2) = abs(a - c + (v1 - v2)t) ・・・ (1) [case 1] a - c = 0 min L = 0 (初期位置から衝突している) [case 2] v1 - v2 = 0 min L = abs(a - c) (2点間の距離が変化しない) [case 3] それ以外 式(1)は、L^2 = αt^2 + βt + γ と整理できる このとき、α > 0であるので、L^2は下に凸の2次関数である L^2が最小となる t = t0 は、t0 = -β/(2α) (1階微分がゼロ) であるが、 0 ≦ t ≦ 1 を考慮すると、 [case 3-1] t0 ≦ 0 min L^2 = γ (t = 0 地点が最も近く、徐々に離れる) [case 3-2] 1 ≦ t0 min L^2 = α+β+γ (徐々に近づき、t = 1 の最終位置が最も近い) [case 3-3] 0 < t0 < 1 min L^2 = - (β^2 - 4αγ) / (4α) (t = t0 の地点が L^2 の極小値) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch