Flash 碰撞检测问题
有一个圆球a_mc,一个不规则体b_mc,把圆球拖向不规则体,但是无法经过它,被挡在b_mc外面,无法经过。...
有一个圆球a_mc,一个不规则体b_mc,把圆球拖向不规则体,但是无法经过它,被挡在b_mc外面,无法经过。
展开
1个回答
展开全部
1、如果不规则物体是个矩形,那么只要一个挡板,覆盖b_mc就可以了。
2、如果不规则物体比较复杂,那么我们可以新建几个像素大小不等的矩形元件分别放在不规则物体的端面上,分别叫做挡板1_mc,挡板2_mc,挡板3_mc,挡板4_mc,等等
3、不规则物体越复杂,那么我们的挡板可以越小,越多。
4、假如现在有不规则物体是个工字形,那么只要3个矩形的挡板就可以了,那么帧上面的as2.0代码如下:
a_mc.onEnterFrame = function() {
if (this.hitTest(挡板1)) {
this.stopDrag();
this._x += 1*(this._x-挡板1._x);
this._y += 1*(this._y-挡板1._y);
}
if (this.hitTest(挡板2)) {
this.stopDrag();
this._x += 1*(this._x-挡板2._x);
this._y += 1*(this._y-挡板2._y);
}
if (this.hitTest(挡板3)) {
this.stopDrag();
this._x += 1*(this._x-挡板3._x);
this._y += 1*(this._y-挡板3._y);
}
};
//=====================================上面是判断小球a_mc是否碰撞挡板的代码
a_mc.onPress = function() {
a_mc.startDrag();
};
//点击小球a_mc,按下开始拖拽
a_mc.onRelease = function() {
a_mc.stopDrag();
};
//松手停止拖拽
2、如果不规则物体比较复杂,那么我们可以新建几个像素大小不等的矩形元件分别放在不规则物体的端面上,分别叫做挡板1_mc,挡板2_mc,挡板3_mc,挡板4_mc,等等
3、不规则物体越复杂,那么我们的挡板可以越小,越多。
4、假如现在有不规则物体是个工字形,那么只要3个矩形的挡板就可以了,那么帧上面的as2.0代码如下:
a_mc.onEnterFrame = function() {
if (this.hitTest(挡板1)) {
this.stopDrag();
this._x += 1*(this._x-挡板1._x);
this._y += 1*(this._y-挡板1._y);
}
if (this.hitTest(挡板2)) {
this.stopDrag();
this._x += 1*(this._x-挡板2._x);
this._y += 1*(this._y-挡板2._y);
}
if (this.hitTest(挡板3)) {
this.stopDrag();
this._x += 1*(this._x-挡板3._x);
this._y += 1*(this._y-挡板3._y);
}
};
//=====================================上面是判断小球a_mc是否碰撞挡板的代码
a_mc.onPress = function() {
a_mc.startDrag();
};
//点击小球a_mc,按下开始拖拽
a_mc.onRelease = function() {
a_mc.stopDrag();
};
//松手停止拖拽
英华检测
2024-11-19 广告
2024-11-19 广告
英华检测|工业CT设备销售|工业ct和X射线检测服务丨4008959688 英华检测(上海)有限公司,专业从事工业CT/X射线设备销售及配套工业CT/X射线检测服务。目前在上海、东莞、北京、西安分别设有办公室,总部位于上海。公司计划将在全国...
点击进入详情页
本回答由英华检测提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询