Re: [問題] 寫一個砲台遊戲
※ 引述《yf2923850 (Mu)》之銘言:
: 謝謝!! 我最後用了奇怪的方式把需要的功能做到了....
: http://sdf123a.myweb.hinet.net/test.rar (原始檔)
: http://sdf123a.myweb.hinet.net/test.swf (SWF檔)
: 可是現在卡在 擊中的判定上面
: 我用hitTest來判斷是否有碰到光束的影片片段 有碰到的話就讓球消失
: 但是hitTest在判斷上 影片片段的範圍太大了 連空白部分也算在裡面
: 導致我連光束都沒碰到球(只在附近) 球也會消失
: 我要如何把 擊中的判定限制在橘色光線上呢??
: 是要把砲台跟光束的動畫分開做嗎?
如果一條直線方程為 L1(x,y) = ax + by + c = 0 的話
那麼平面上的點 P (x0, y0) 到該直線的距離為:
R(P,L1) = abs(L1(x0, y0)) / sqrt(a^2 + b^2)
如果那個球 (圓) 的圓心在 x0, y0, 半徑又為 r0 的話
只要 R(P, L1) < r0 就試為擊中 這是一種做法
但若你的物體是更複雜的幾何圖型,或/且 需要在三維空間運作的話
難度就更高了些 :p
我想到的方法有:
1) 將物件 O 化約為數個子物件 O1, O2, .... On, 且各子物件均為簡單型狀,
(如球型,橢圓球,長方體等等) 再檢查火砲是否通過任一子物件
2) 將各物件進行座標轉換,自迪卡爾直角座標系統轉為觀查者為中心的極座
標 (r, theta, phi), 再將目標取其在此座標系統下,任一 r=k 之投影
又因砲彈直進,且由原點發出,故能簡易判斷該直線 (或射線) 是否與特定
球面投影上之型狀相交。
--
鬼壓床怎麼辦
騎上去啊
Blog: http://blog.roodo.com/clifflu/ Since October, 2006
Photo Galelry: http://clifflu.pixnet.net/ 沒有了 T_T
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.61.82
推
05/03 19:18, , 1F
05/03 19:18, 1F
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章