看板 GameDesign 關於我們 聯絡資訊
最近做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