【xdown】flash碰撞检测onClipEvent(enterFrame){\x05if(Key.isDown(Key.UP...
答案:2 悬赏:0 手机版
解决时间 2021-02-13 00:07
- 提问者网友:低吟詩仙的傷
- 2021-02-12 12:23
【xdown】flash碰撞检测onClipEvent(enterFrame){\x05if(Key.isDown(Key.UP...
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-02-12 12:38
【答案】 //1按点来碰撞,能精确到b的边缘,但是碰撞点是A的中心
if(b.hitTest(_x,_y,false) == true)
{
//碰撞
}
//2对象碰撞,只能精确到两个对象的矩形边框
if(b.hitTest(this) == true)
{
//碰撞
}
//3用数学公式来计算,相对很复杂,一般需要使用box2D等引擎.
//4 通过图形像素点叠加部分来计算,可以去网上搜索具体算法. 追问: 我在前两个“if”后加上 if(_root.b.hitTest(_root.a._x,_root.a._y,false) == true && Key.isDown(Key.UP)) { …… } 这样改完是a的中点碰到b,但还是b的矩形边框,不是里面图形的边缘。但你说“能精确到b的边缘 ” 追答: 不好意思,写错了,应该是b.hitTest(_x,_y,true)。//这里ture和false表示是否判断形状。 其中b的形状必须是矢量图形,如果是一个带透明的位图是没有用的。
if(b.hitTest(_x,_y,false) == true)
{
//碰撞
}
//2对象碰撞,只能精确到两个对象的矩形边框
if(b.hitTest(this) == true)
{
//碰撞
}
//3用数学公式来计算,相对很复杂,一般需要使用box2D等引擎.
//4 通过图形像素点叠加部分来计算,可以去网上搜索具体算法. 追问: 我在前两个“if”后加上 if(_root.b.hitTest(_root.a._x,_root.a._y,false) == true && Key.isDown(Key.UP)) { …… } 这样改完是a的中点碰到b,但还是b的矩形边框,不是里面图形的边缘。但你说“能精确到b的边缘 ” 追答: 不好意思,写错了,应该是b.hitTest(_x,_y,true)。//这里ture和false表示是否判断形状。 其中b的形状必须是矢量图形,如果是一个带透明的位图是没有用的。
全部回答
- 1楼网友:舍身薄凉客
- 2021-02-12 13:10
我好好复习下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯