Nape, арбитры и столкновения

govnoproger.ru > as3 > Nape, арбитры и столкновения

Всё написанное имеет отношение к новой версии nape — milestone 5. Это не подойдёт для старых версий.

В новой версии nape нет коллбэков, вернее пока-что нету.
Используются арбитры.

Арбитры бывают:

  • COLLISION — Это арбитр столкновений, причём столкновений физических. Два тела при этом сталкиваются.
  • FLUID — Это жидкостной арбитр. Нужен для тел в жидкости. Он преставляет наименьший интерес.
  • SENSOR — Это арбитр не физических столкновений. Сенсорный. Например когда одно тело проходит насквозь другого, из-за того, что они в разных слоях они не сталкиваются физически.

Вот простой пример.
Представьте себе:
Есть два тела. body1 и body2.

У первого тела на энтерфрейме вызывается:


for(var i = 0; i<body1.arbiters.length; i++)
{
	var arb:Arbiter = body1.arbiters.at(i);
	if (arb.isCollisionArbiter()) trace("этот код вы увидите если происходит физическое столкновение");
	if (isFluidArbiter())trace("этот код вы увидите если происходит жидкостное воздействие");
	if (isSensorArbiter()) trace("этот код вы увидите если происходит сенсорное столкновение");
	
}

Теперь представьте что у второго тела есть шейп some.
Чтобы зарегистрировать физическое столкновение код будет таким:

for(i = 0; i<body1.arbiters.length; i++)
{
	arb = body1.arbiters.at(i)
	if(arb.CollisionArbiter() &&(arb.shape1==some || arb.shape2==some)) //тк неизвестен порядок шейпов
	{
		trace("body1 и body2 сталкиваются физически");
	}
}

Вот собственно и всё господа.

Рекомендую:

9.8.2011 | последняя редакция: 09.08.2011 |