如何从 FlxG.collide 中识别 FlxGroup 中的特定实体?
How do I identify specific entity within a FlxGroup from FlxG.collide?
如何做到当子弹组中的一颗子弹与敌人组中的一个敌人相撞时,只有两个相互撞击的人会受到影响?
我试过(在游戏状态下):
if (FlxG.collide(bullet, enemy)){
bullet.kill();
enemy.kill();
}
但这唯一成功的事情就是杀死整个团队。我如何只杀死受影响的人?
您想传入通知回调:
所以这就是你想要的:
FlxG.collide(bulletGroup, enemyGroup, collideBulletEnemy));
function collideBulletEnemy(bullet:FlxObject, enemy:FlxObject):Void
{
bullet.kill();
enemy.kill();
}
更多解释:
flixel 中的 collide() 函数可让您将对象或组传递给任一参数,并告诉您这两者是否发生冲突。在两个对象的情况下,您可以直接使用对这两个对象进行操作的逻辑来跟进该测试。但是,如果其中一个对象是一组,您无法仅根据测试知道哪些对象发生了碰撞,因此您需要依靠您自己提供的回调来获取该特定信息。
collide(?ObjectOrGroup1:FlxBasic, ?ObjectOrGroup2:FlxBasic, ?NotifyCallback:Dynamic‑>Dynamic‑>Void):Bool
所以我认为你可以使用类似的东西:
FlxG.collide(
groupBullets,
groupEnemies,
function (bullet:FlxObject, enemy:FlxObject):Void {
enemy.kill();
bullet.kill();
}
);
如何做到当子弹组中的一颗子弹与敌人组中的一个敌人相撞时,只有两个相互撞击的人会受到影响?
我试过(在游戏状态下):
if (FlxG.collide(bullet, enemy)){
bullet.kill();
enemy.kill();
}
但这唯一成功的事情就是杀死整个团队。我如何只杀死受影响的人?
您想传入通知回调:
所以这就是你想要的:
FlxG.collide(bulletGroup, enemyGroup, collideBulletEnemy));
function collideBulletEnemy(bullet:FlxObject, enemy:FlxObject):Void
{
bullet.kill();
enemy.kill();
}
更多解释:
flixel 中的 collide() 函数可让您将对象或组传递给任一参数,并告诉您这两者是否发生冲突。在两个对象的情况下,您可以直接使用对这两个对象进行操作的逻辑来跟进该测试。但是,如果其中一个对象是一组,您无法仅根据测试知道哪些对象发生了碰撞,因此您需要依靠您自己提供的回调来获取该特定信息。
collide(?ObjectOrGroup1:FlxBasic, ?ObjectOrGroup2:FlxBasic, ?NotifyCallback:Dynamic‑>Dynamic‑>Void):Bool
所以我认为你可以使用类似的东西:
FlxG.collide(
groupBullets,
groupEnemies,
function (bullet:FlxObject, enemy:FlxObject):Void {
enemy.kill();
bullet.kill();
}
);