[程式] 請問如何精準的計算2D子彈的移動

看板GameDesign作者 (InitialPower)時間14年前 (2011/10/28 12:40), 編輯推噓2(208)
留言10則, 6人參與, 最新討論串1/2 (看更多)
最近做Tower Defence類型的遊戲 遇到了射擊子彈出去的問題 本來是讓子彈自己有onFrame事件 然後不斷地朝敵人的位置前進,就算敵人會移動 子彈也會追著跑 但是只要移動距離變長,子彈的軌跡就會漸漸變成弧線 看起來很詭異 之後試了另外一個方法,只有在射擊的一瞬間計算 敵人與炮塔之間的角度,然後用Box2D把子彈設定角度快速推出去 打出來是精準的直線,而且感覺很省支援 是改良了不少,不過當遇上移動速度快且距離長的敵人時 出現了會打不中的情形 所以現在想請問 我想要在計算角度的時候,就先計算敵人移動的前置量 要如何計算的出來勒 已知條件:子彈的移動速度、敵人的移動速度與方向 請知道的人不吝指教,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.138.209 ※ 編輯: InitialPower 來自: 112.105.138.209 (10/28 12:41)

10/28 13:41, , 1F
方案1:把子彈改成追蹤魔法彈 (耗時:數分鐘)
10/28 13:41, 1F

10/28 13:42, , 2F
方案2:別管碰撞判斷了,在發射瞬間就算好飛行時間、碰撞點
10/28 13:42, 2F

10/28 13:43, , 3F
,然後把「顯示子彈飛過去射中人」的部分顯示出來。
10/28 13:43, 3F

10/28 13:44, , 4F
破撞時間到,不管子彈在哪裡,都當成命中。
10/28 13:44, 4F

10/28 14:02, , 5F
方案3:太快太遠打不到是特色不是bug
10/28 14:02, 5F

10/28 14:20, , 6F
彈速V 目標速U, (Vx-Ux):(Vy-Uy)=(△x):(△y)
10/28 14:20, 6F

10/28 16:12, , 7F
方案4:把程式碼全丟了,當做從來沒寫過這段程式
10/28 16:12, 7F

10/28 16:12, , 8F
感謝各位的回復,我研究看看
10/28 16:12, 8F

10/30 00:16, , 9F
這方案4......
10/30 00:16, 9F

10/30 18:59, , 10F
TD 這類遊戲應該都可以知道敵人每個 frame 的確切位置
10/30 18:59, 10F
文章代碼(AID): #1EgZ8pE5 (GameDesign)
文章代碼(AID): #1EgZ8pE5 (GameDesign)