Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 07.08.2015, 02:14
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 1  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Сенсоры, группы, маски

Добрый день, пытаюсь разобраться с сенсорными телами, но что-то не получается
Код работает, когда я ставлю Collision, а когда sensor не работает

Большая просьба, объясните про группы и маски, зоны видимости


Код AS3:
//отрывок из одного класса
 
		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;
		}
Код AS3:
//отрывок из второго класса
		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();
		}
тут функция слушателя событий nape, если вместо InteractionType.COLLISION написать InteractionType.SENSOR, то событие не вызывается, при этом параметр var collisiomMask:int = 0x00000010; одного из классов я меняю на var collisiomMask:int = 0x00000001;
Код AS3:
		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);
		}

Создать новую тему   Часовой пояс GMT +4, время: 12:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.