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

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

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

Регистрация: Jan 2010
Сообщений: 25
По умолчанию QuickBox2D не корректно работает сенсор

В общем идея такая, есть много статических и пару динамических тел, мне нужно отследить событие, когда сенсор пересекается с этими телами, пока в роли сенсора создаю круг, который привязан к мышке(просто каждый раз присваиваю координаты мышки, координатам круга).
Пока пытаюсь отследить так(цикл находится с функции, которая срабатывает на событие QuickContacts.PERSIST):

Код AS3:
for (var i:int = 0; i < allPhysicsObject_arr.length; i++) 
{
	if ( contacts.isCurrentContact( _moovingActiveObject, allPhysicsObject_arr[i]))
	{
		_moovingActiveObject.userData.alpha = .5;
	}
}
allPhysicsObject_arr - это массив со всеми телами, их пока 49
_moovingActiveObject - это круг-сенсор

Аналогичный цикл находится в функции, которая срабатывает на событие QuickContacts.REMOVE(меняет альфу на 1), однако работает не корректно, иногда срабатывает иногда нет... В чем дело не знаю, пробовал ставить isBullet: true, не помогло.

Если у кого есть мысли, как это исправить или как отловить событие, когда одно определенное тело соприкасается с другим/другими, то буду рад выслушать.

p.s QuickBox2D это оболочка для Box2D 2.0.2


upd Проблему вроде решил, перед тем как менять положение круга, надо было "обнулять" данные:
Код AS3:
			_moovingActiveObject.body.SetAngularVelocity(0);
			_moovingActiveObject.body.SetLinearVelocity(new b2Vec2());
			_moovingActiveObject.bodyDef.angle = 0;
			_moovingActiveObject.bodyDef.angularDamping = 0;
			_moovingActiveObject.bodyDef.linearDamping = 0;
 
			_moovingActiveObject.x = container.mouseX / SCALE;
			_moovingActiveObject.y = container.mouseY / SCALE;


Последний раз редактировалось Maximer; 03.09.2010 в 23:54.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
box2D столкновение тел , QuickBox2D , sensor

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

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


 


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


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