作者InitialPower (InitialPower)
看板GameDesign
標題[程式] 請問如何精準的計算2D子彈的移動
時間Fri Oct 28 12:40:16 2011
最近做Tower Defence類型的遊戲
遇到了射擊子彈出去的問題
本來是讓子彈自己有onFrame事件
然後不斷地朝敵人的位置前進,就算敵人會移動
子彈也會追著跑
但是只要移動距離變長,子彈的軌跡就會漸漸變成弧線
看起來很詭異
之後試了另外一個方法,只有在射擊的一瞬間計算
敵人與炮塔之間的角度,然後用Box2D把子彈設定角度快速推出去
打出來是精準的直線,而且感覺很省支援
是改良了不少,不過當遇上移動速度快且距離長的敵人時
出現了會打不中的情形
所以現在想請問
我想要在計算角度的時候,就先計算敵人移動的前置量
要如何計算的出來勒
已知條件:子彈的移動速度、敵人的移動速度與方向
請知道的人不吝指教,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.105.138.209
※ 編輯: InitialPower 來自: 112.105.138.209 (10/28 12:41)
推 LaPass:方案1:把子彈改成追蹤魔法彈 (耗時:數分鐘) 10/28 13:41
→ LaPass:方案2:別管碰撞判斷了,在發射瞬間就算好飛行時間、碰撞點 10/28 13:42
→ LaPass:,然後把「顯示子彈飛過去射中人」的部分顯示出來。 10/28 13:43
→ LaPass: 破撞時間到,不管子彈在哪裡,都當成命中。 10/28 13:44
→ azureblaze:方案3:太快太遠打不到是特色不是bug 10/28 14:02
→ Foremanytz:彈速V 目標速U, (Vx-Ux):(Vy-Uy)=(△x):(△y) 10/28 14:20
→ InitialPower:方案4:把程式碼全丟了,當做從來沒寫過這段程式 10/28 16:12
→ InitialPower:感謝各位的回復,我研究看看 10/28 16:12
→ cowbaying:這方案4...... 10/30 00:16
推 Ebergies:TD 這類遊戲應該都可以知道敵人每個 frame 的確切位置 10/30 18:59