作者F23ko (純潔)
看板GameDesign
標題[程式] 問題 STG 極座標 我的子彈不會倒車
時間Sun Mar 28 04:07:24 2010
自己在演算法中的定義是.....
P = 位置,是角座標,因為畫在視窗上比較方便
┌───→X
│
│ P(X,Y)
│
↓Y
V = 速度,是極座標
但是在對於P的運算上,採用角座標算法
下一影格的P'為(X+Vx,Y+Vy)
┌──────────→ X
│ P'(X+Vx,Y+Vy)
│ d ↗
│ ╱θ V(Vx,Vy) 或 V(Vθ,Vd)
│ ─→
│ P(X,Y)
│
│
│
│
│
↓Y
A = 加速度,是極座標
對於V的定義為方向角度(Aθ) * 強度(Ad)
下一影格的V'為(Vx+d*Cos(Vθ-Aθ),Vx+d*Sin(Vθ-Aθ))
V(Vx,Vy)↑
│ ↗
│ /V'(Vx+Ad*Cos(Vθ-Aθ),Vx+Ad*Sin(Vθ-Aθ))
│ /
│╮θ
\
d\ A(θ,d)
↘
=============================================================
問題出在A的方向等於180的時候 (例如煞車的時候)
會往前飛出,停下來,不會向後走
--
◢
鄉民啊!鄉民! 請告訴我誰是最純潔的人!
◢█ │
PTT │
██
:就是你!Snow White F23ko!│
█◤ ╯
◤ ﹨(╯▽╰ )∕
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.140.106.70
推 LPH66:你想一下 v=0 時它的角度 (Vθ) 是什麼 03/28 04:54
→ chenglap:180 度是要特殊處理的. 03/28 11:30
→ F23ko:接近170 160度時會打轉, 170~180左右會「顫抖」 囧.... 03/28 15:52
→ F23ko:我覺得整個計算方式可能要重想過.... = = 03/28 16:04
推 yoco315:小弟真心、良心、誠心的建議:「不要用極座標」 03/30 18:17