作者clifflu ( 木 头)
看板Flash
标题Re: [问题] 写一个炮台游戏
时间Thu May 3 18:37:51 2007
※ 引述《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
1F:推 etrexetrex:推 05/03 19:18