首页 > 代码库 > 使用PreListener与InteractionListener的一个小发现
使用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 kingBook15 * 2015-02-01 21:1816 */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
使用PreListener与InteractionListener的一个小发现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。