【xdown】flash碰撞检测onClipEvent(enterFrame){\x05if(Key.isDown(Key.UP...
网友回答
【答案】 //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的形状必须是矢量图形,如果是一个带透明的位图是没有用的。