• 使用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
    "
    53         }
    54         
    55     }
    56     
    57 }

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

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

  • 相关阅读:
    Linux-解决putty无法直接使用root用户远程登录linux主机的问题
    Linux-安装jdk
    Linux-安装谷歌浏览器
    Linux-安装ssh服务
    java正则表达式匹配文本中想要的字符串
    日常技术资源收集
    《java编程思想》:散列的原理
    《java编程思想》:字符串
    win10完美去除快捷方式小箭头
    WS_2012
  • 原文地址:https://www.cnblogs.com/kingBook/p/4266103.html
Copyright © 2020-2023  润新知