flash游戏中的 不规则碰撞hitTest

最近在做个flash的打砖块的游戏。
游戏本身还是比较简单的。
但是在检测碰撞时
涉及到了 不规则形状的碰撞
===============
知识点如下:
1:点pt 对象的x y 属性,必须时x 与y ,不是_x 与 _y
2:movieClip.getBounds()
     该方法得到元件的四个极值 xMin xMax yMin yMax
3:movieClip.localToGlobal(pt)
     可以将任何给定的x和y左边从相对于这个特定的mc左上角的值
    转换到相对于舞台左上角的坐标。
=========================

flash游戏中的 不规则碰撞hitTest
1:新建两个元件 m 与ball
    并在实例名称分别命名:m  与 ball
2:代码开始在主时间轴
   
 1 flash游戏中的 不规则碰撞hitTest stop();
 2 flash游戏中的 不规则碰撞hitTestball.onPress  =  function()  {
 3flash游戏中的 不规则碰撞hitTest    this.startDrag();//开始拖拽
 4flash游戏中的 不规则碰撞hitTest}
;
 5 flash游戏中的 不规则碰撞hitTestball.onRelease  =  function()  {
 6flash游戏中的 不规则碰撞hitTest    this.stopDrag();//结束拖拽
 7flash游戏中的 不规则碰撞hitTest}
;
 8 flash游戏中的 不规则碰撞hitTest // 声明2个点对象,因为每个点对象接受x,y,但极值有四个。所以创建2个点对象。
 9 flash游戏中的 不规则碰撞hitTest var ptMin:Object  =   new  Object();
10 flash游戏中的 不规则碰撞hitTestvar ptMax:Object  =   new  Object();
11 flash游戏中的 不规则碰撞hitTestvar thisBounds:Object  =   new  Object();
12 flash游戏中的 不规则碰撞hitTest // 这个对象里获取了ball元件的极值
13 flash游戏中的 不规则碰撞hitTest thisBounds  =  ball.getBounds();
14 flash游戏中的 不规则碰撞hitTestm.onEnterFrame  =  function()  {
15flash游戏中的 不规则碰撞hitTest    //为点对象添加x y 属性一定要在onEnterFrame事件中
16flash游戏中的 不规则碰撞hitTest    ptMin.x = thisBounds.xMin;
17flash游戏中的 不规则碰撞hitTest    ptMin.y = thisBounds.yMin;
18flash游戏中的 不规则碰撞hitTest    ptMax.x = thisBounds.xMax;
19flash游戏中的 不规则碰撞hitTest    ptMax.y = thisBounds.yMax;
20flash游戏中的 不规则碰撞hitTest    //将相对于ball内的左上角的值,转变为相对于舞台的左上角的值
21flash游戏中的 不规则碰撞hitTest    ball.localToGlobal(ptMin);
22flash游戏中的 不规则碰撞hitTest    ball.localToGlobal(ptMax);
23flash游戏中的 不规则碰撞hitTest    if (this.hitTest(ptMin.x, ptMin.y, true)) {
24flash游戏中的 不规则碰撞hitTest        trace("minx miny");
25flash游戏中的 不规则碰撞hitTest    }
 else if (this.hitTest(ptMin.x, ptMax.y, true)) {
26flash游戏中的 不规则碰撞hitTest        trace("minx  maxy");
27flash游戏中的 不规则碰撞hitTest    }
 else if (this.hitTest(ptMax.x, ptMin.y, true)) {
28flash游戏中的 不规则碰撞hitTest        trace("maxx  miny");
29flash游戏中的 不规则碰撞hitTest    }
 else if (this.hitTest(ptMax.x, ptMax.y, true)) {
30flash游戏中的 不规则碰撞hitTest        trace("maxx  maxy");
31flash游戏中的 不规则碰撞hitTest    }

32flash游戏中的 不规则碰撞hitTest}
;

结束:你可以拖动ball,当碰到了矩形m的时候。会trace相应的信息。



目视远方,脚踏实地。我在醒着。
欢迎您光临醒着的flash技术博客。

你可能感兴趣的:(Flash)