Ada*_*rte 4 haxe actionscript-3 game-physics physics-engine nape
我有多个宇宙飞船(SHIP_CBCbType),可以全部射击导弹(BULLET_CBCbType).如何设置在那里sensorGroup,sensorMask并InteractionListeners让我得到了以下行为:
甚至可以通过在每个对象上设置正确的sensorGroup和sensorMask来获得所有这些行为吗?
假设子弹永远只能去感,所以不应该与他们开枪船舶上的任何方式进行交互,一个办法是:
从一切违约开始,
对于每艘船
ship.group = new InteractionGroup(true);
为给定船舶'船'创建的每个子弹
将子弹设置为与拍摄它的船具有相同的交互组.这样,由于在群组中忽略= true,从指定船舶发射的任何子弹都将被排除在与该船舶相互作用之外.
bullet.group = ship.group;
对于子弹的每个形状,可能只有1.制作子弹形状的传感器
bulletShape.sensorEnabled = true;
除了自己以外,用子弹制造子弹形状.
bulletShape.sensorGroup = 2; bulletShape.sensorMask = ~2;
你可以用sensorGroup/sensorMask完全做到这一点.但你只能被限制在31艘不同的船上,而且逻辑会更复杂一些.
您还可以使用回调系统来忽略船只与其发射的子弹之间的交互作用,并在回调中使用一些额外的逻辑,但它比使用InteractionGroup的东西要重得多.