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

看板GameDesign作者 (AzureBlaze)時間14年前 (2011/10/28 14:00), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/2 (看更多)
剛好之前有寫過 可是我覺得很難用所以拔掉了 屍體還在可是一些相關函數被我改掉了所以我不確定是否正確 式子的計算過程也被我搞丟了 基本上我是建議用更簡單偷懶的方式處理啦.... Lua code: //變數幾乎都是向量 r = playerPos - pos //目標位置 - 自身位置 u = velo //目標速度 lr = r:Length() lu = u:Length() lv = 30; //子彈速度 a= lu * lu - lv * lv b = -2 * lr *lu * math.cos( u:Angle(r)) //u:Angle(r)是u與r的夾角 c =lr * lr delta = b * b - 4 * a * c if delta < 0 then return //不可能打中 end delta = math.sqrt(delta) t= (-b - delta) / (2*a) v = (r * (1.0 / t) + u) FireLinearBullet(pos,v:Angle(nil),lv,0,0,0,0) // 發射位置,發射角度,子彈速度, ..... // v:Angle(nil)是 v對x軸的夾角 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.54.140

10/28 14:01, , 1F
太久沒寫Lua, comment 應該是--不是//
10/28 14:01, 1F

10/28 14:07, , 2F
到目標的向量 + 目標速度*時間 = 子彈速度*時間
10/28 14:07, 2F

10/28 14:29, , 3F
10/28 14:29, 3F

10/28 16:15, , 4F
感謝這位板友,還有付圖參考,我研究一下,成功的話
10/28 16:15, 4F

10/28 16:15, , 5F
再來分享。
10/28 16:15, 5F
文章代碼(AID): #1EgaK25P (GameDesign)
文章代碼(AID): #1EgaK25P (GameDesign)