kingBook

导航

使用PreListener与InteractionListener的一个小发现

 如果两个刚体使用PreListener忽略了它的碰撞时,如果这时你使用InteractionListener来侦听它们的碰撞还是可以侦听到的:

 1 package  {
 2     import com.bit101.components.TextArea;
 3     import nape.callbacks.CbEvent;
 4     import nape.callbacks.CbType;
 5     import nape.callbacks.InteractionCallback;
 6     import nape.callbacks.InteractionListener;
 7     import nape.callbacks.InteractionType;
 8     import nape.callbacks.PreCallback;
 9     import nape.callbacks.PreFlag;
10     import nape.callbacks.PreListener;
11     import nape.phys.Body;
12     /**
13      * ...
14      * @author kingBook
15      * 2015-02-01 21:18
16      */
17     public class Main extends BaseMain {
18         
19         public function Main() {
20             super({gravity:{x:0,y:0}});
21             
22         }
23         
24         private var _box:Body;
25         private var _circle:Body;
26         private var _boxCbType:CbType=new CbType();
27         private var _circleCbType:CbType=new CbType();
28         private var _textArea:TextArea;
29         override protected function createBodies():void {
30             //矩形刚体
31             _box=createBox(50,50,100,200);
32             _box.cbTypes.add(_boxCbType);
33             _box.space=_space;
34             
35             //圆形刚体
36             _circle=createCircle(30,250,200);
37             _circle.cbTypes.add(_circleCbType);
38             _circle.space=_space;
39             
40             _space.listeners.add(new PreListener(InteractionType.COLLISION,_boxCbType,_circleCbType,ignoreHandler));
41             _space.listeners.add(new InteractionListener(CbEvent.BEGIN,InteractionType.COLLISION,_boxCbType,_circleCbType,onHitBegin));
42             
43             //文本域
44             _textArea=new TextArea(this,5,5);
45         }
46         
47         private function ignoreHandler(cb:PreCallback):PreFlag{
48             return PreFlag.IGNORE;
49         }
50         
51         private function onHitBegin(cb:InteractionCallback):void{
52             _textArea.text += "hit\n"
53         }
54         
55     }
56     
57 }

 拖动矩形刚体与圆形刚体相碰依然可以看到输出: hit

源码下载:http://yunpan.cn/cKBwzyNkfJN7P  访问密码 5883

posted on 2015-02-01 21:20  kingBook  阅读(235)  评论(0编辑  收藏  举报