5

我正在使用 Apple Sprite Kit 编写一个小游戏。

我遇到了碰撞问题。有时我不希望两个带有physicsBodys 的skSpriteNodes 交互。

例如,我有 HERO、ENEMYS 和 SHOTS,我希望 SHOTS 只与 ENEMYS 交互。

但是当 2 个镜头碰撞在一起时,它们会改变位置。!

拍摄的代码是

   shot.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:shot.size];
   shot.physicsBody.dynamic = YES;
   shot.physicsBody.allowsRotation = FALSE;
   shot.physicsBody.categoryBitMask = playerShotCategory;
   shot.physicsBody.contactTestBitMask = enemyCategory;

敌人的代码是

   activeGameObject.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:activeGameObject.size];
    activeGameObject.physicsBody.dynamic = YES;
    activeGameObject.physicsBody.categoryBitMask = enemyCategory;
    activeGameObject.physicsBody.contactTestBitMask = playerCategory | playerShotCategory;
    activeGameObject.physicsBody.allowsRotation = FALSE;
4

1 回答 1

6

如果您只想让镜头与敌人互动,则需要添加以下代码:

shot.physicsBody.collisionBitMask = enemyCategory;
activeGameObject.physicsBody.collisionBitMask = playerShotCategory|playerCategory;

有关更多信息,请参阅碰撞位掩码的文档。如果您希望在碰撞中涉及其他类别,则可能需要修改 collisionBitMask。

于 2013-10-01T15:04:55.093 回答