![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
Добрый день, пытаюсь разобраться с сенсорными телами, но что-то не получается
Код работает, когда я ставлю Collision, а когда sensor не работает Большая просьба, объясните про группы и маски, зоны видимости //отрывок из одного класса public function get getBody():Body { var collisionGroup:int = 0xFFFFFFFF; var collisiomMask:int = 0x00000010; var sensorGroup:int = 0xFFFFFFFF; var sensorMask:int = 0xFFFFFFFF; var mouse:Mouse = new Mouse; body = new Body(BodyType.DYNAMIC); body.userData.sprite = mouse; mouse.setBody = body; //вызывается в Mouse для передачи параметров body var shape:Shape = new Polygon(Polygon.box(35, -35), Material.rubber(), new InteractionFilter(collisionGroup, collisiomMask, sensorGroup, sensorMask)); body.shapes.add(shape); body.align(); return body; } //отрывок из второго класса public function CatNape() { var collisionGroup:int = 0xFFFFFFF0; var collisiomMask:int = 0x00000010; var sensorGroup:int = 0xFFFFFFFF; var sensorMask:int = 0xFFFFFFFF; body = new Body(BodyType.DYNAMIC, new Vec2(100, 220)); var shape:Shape = new Polygon(Polygon.box(60, -45), Material.rubber(), new InteractionFilter(collisionGroup, collisiomMask, sensorGroup, sensorMask)); body.shapes.add(shape); body.align(); } private var interactionListener:InteractionListener; private var catCollisionType:CbType = new CbType(); private var mouseCollisionType:CbType = new CbType(); public function startGame():void { interactionListener = new InteractionListener(CbEvent.BEGIN, InteractionType.COLLISION, catCollisionType, mouseCollisionType, sensorMouseAndCat) space.listeners.add(interactionListener); } private function sensorMouseAndCat(collision:InteractionCallback):void { trace(3333); } |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
писал так, но у меня пропадает физика тогда, все объекты находятся на платформе и при добавлении этой строчки сквозь неё проваливаются
|
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
На рисунке круглое тело пусть ball, квадратное box
ball прыгает на одном месте с постепенным угасанием. box движется по направлению к ball, если тела сталкиваются(физика столкновения не нужна тут, т.к. ball должен прыгать строго вертикально), нужно поймать событие sensor, при этом событии я решаю, менять ли значение ball.velocity.y и какие коэффициенты применить |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
caseyryan большое спасибо, то что нужно
Если не затруднит, объясните про маски и группы Добавлено через 14 часов 18 минут ещё вопрос private var catCollisionType:CbType = new CbType(); private var mouseCollisionType:CbType = new CbType(); public function startGame():void { space.listeners.add(new PreListener(InteractionType.COLLISION, catCollisionType, mouseCollisionType, preListenerHandler)); } private function preListenerHandler(cb:PreCallback):PreFlag { var normal:Vec2 = cb.arbiter.collisionArbiter.normal; if (cat.velocity.y > 0) { cat.velocity.y *= -1; trace(cat.velocity.y); } return PreFlag.IGNORE; } Добавлено через 26 часов 13 минут как получить ссылку на Body разобрался, остался вопрос про группы и маски Последний раз редактировалось neonoviiwolf; 09.08.2015 в 18:13. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|