作者kannushilink (Kannushi Link)
看板Flash
标题Re: [问题] 侦测碰撞
时间Sun Jun 10 17:31:19 2007
※ 引述《evabird (匠气逼人)》之铭言:
: 我用一个区块来做侦测碰撞
: 可是发现不规则的形状电脑还是以一个方块来计算
: 也就是说空白的部份也会被算在侦测范围
: 同学是说把区块作小块一点 做很多个
: 请问还有别的方法可以解决这个问题吗??
: 谢谢
可以考虑把图形外框分成几个点来侦测
例如:如果图形是菱形的话,可以在顶点用侦测点,然後在每个边中间在用一个侦测点
侦测点的数量要视情况而做好设定
当然侦测点不要弄太多,要不然跑起来会lag
------
之後把所有侦测点对movieclip的相对座标(就是点在movieclip里的XY座标)找出来
然後把所有座标弄成一个二维阵列(例如pt=[[0,5],[5,0],[-5,0],[0,-5]])
最後程式要用这个(写在要碰撞的物件里):
for (i = 0;i < A;i++){
if(MCname.hitTest(this._x+pt[i][0],this._y+pt[i][1],true)) {
//要做的动作
}
}
MCname = 被碰撞的movieclip名称
X和Y是侦测点的相对座标
A是侦测点数量
希望这对你有用:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.169.49.66
1F:推 evabird:谢谢~ 06/10 20:02
2F:→ evabird:这个适用於不规则形状吗? 06/10 20:02
3F:推 kannushilink:当然可以:) 06/12 21:01
4F:推 evabird:谢谢~ 06/13 00:00