Делюсь своими наработками, юзаю precollisionHandler для того чтобы, объекты могли проходить только под определённым углом и collisionHandler для отлова нужных столкновений

Код AS3:
package ru.jumper.model.providers
{
import nape.callbacks.CbEvent;
import nape.callbacks.CbType;
import nape.callbacks.InteractionListener;
import nape.callbacks.InteractionType;
import nape.callbacks.ListenerList;
import nape.callbacks.PreListener;
public class CollisionsProvider
{
private var _listeners:ListenerList;
public function CollisionsProvider(listeners:ListenerList)
{
_listeners = listeners;
}
public function bind(emmiter:CbType, target:CbType, callback:Function):CollisionsProvider
{
_listeners.add(
new InteractionListener(
CbEvent.BEGIN,
InteractionType.COLLISION,
emmiter,
target,
callback
)
);
return this;
}
public function sensor(emmiter:CbType, target:CbType, callback:Function):CollisionsProvider
{
_listeners.add(
new PreListener(
InteractionType.COLLISION,
emmiter,
target,
callback,
0,
true
)
);
return this;
}
}
}

Код AS3:
var cbType1:CbType = new CbType();
var cbType2:CbType = new CbType();
body.cbTypes.add(cbType1);
body.userData.normal = Vec2.fromPolar(1, Math.PI * 0.5); // задаем вектор указывающий вверх объекта
body2.cbTypes.add(cbType2);
body2.userData.normal = Vec2.fromPolar(1, Math.PI * 0.5);
_napeCollision = new CollisionsProvider( _space.listeners )
.bind(cbType1,cbType2,collisionHandler)
.sensor( cbType1, CbType.ANY_BODY, precollisionHandler);

Код AS3:
protected function collisionHandler(collision:InteractionCallback):void {
// вектор столкновения
var v1:Vec2 = collision.arbiters.at(0).collisionArbiter.normal;
}

Код AS3:
protected function precollisionHandler(cb:PreCallback):PreFlag
{
var v1:Vec2 = cb.arbiter.collisionArbiter.normal;
var body:Body = cb.int1.castBody;
var v2:Vec2 = body.userData.normal;
// Обработчик который пропускает или не пропускает два объекта, в зависимости от вектора столкновения между ними
if (v1.dot(v2) <= 0)
return PreFlag.IGNORE
else
return PreFlag.ACCEPT;
}
Пищи хватит, дальше под свои задачи.
Добавлено через 9 минут
собственно в CollisionsProvider можно заменить

Код AS3:
CbEvent.BEGIN
на

Код AS3:
CbEvent.END
и ловить данные после столкновений