SKSpritenode与场景的物理体相互作用

时间:2015-06-07 19:33:51

标签: swift sprite-kit

如何让SKSpritenode无阻碍地通过场景的物理主体。 节点的属性是

    monster.physicsBody?.categoryBitMask = PhysicsCategory.Monster
    monster.physicsBody?.contactTestBitMask = PhysicsCategory.Player
    monster.physicsBody?.collisionBitMask = 0x0;
    monster.physicsBody?.dynamic = false
    monster.physicsBody = SKPhysicsBody(circleOfRadius: 30);

,场景是

    self.physicsBody = SKPhysicsBody(edgeLoopFromRect: CGRect(origin: CGPoint(x: 0, y: 65), size: CGSize(width: self.frame.size.width, height: self.frame.size.height)))
    physicsWorld.gravity = CGVectorMake(0,-10);
    physicsWorld.contactDelegate = self;

当怪物节点到达场景的边界时,它将停止片刻然后继续其路径。我怎么做到它不会与场景的边界互动。

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题,我建议你自己创建自定义边界,而不是使用场景的physicsBody。

1)在场景周围创建4个边界,并相应地调整collisionBitMaskContactBitMask

2)(未经测试)相应调整self.physicsBody collisionBitMaskcontactBitMask。这将是不好的做法,可能会在将来引发其他碰撞问题。