看板 GameDesign 關於我們 聯絡資訊
剛好之前有寫過 可是我覺得很難用所以拔掉了 屍體還在可是一些相關函數被我改掉了所以我不確定是否正確 式子的計算過程也被我搞丟了 基本上我是建議用更簡單偷懶的方式處理啦.... 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
azureblaze:太久沒寫Lua, comment 應該是--不是// 10/28 14:01
azureblaze:到目標的向量 + 目標速度*時間 = 子彈速度*時間 10/28 14:07
azureblaze:http://ppt.cc/8;f6 10/28 14:29
InitialPower:感謝這位板友,還有付圖參考,我研究一下,成功的話 10/28 16:15
InitialPower:再來分享。 10/28 16:15