如何包含圆形重力场

时间:2014-12-28 03:05:42

标签: ios swift sprite-kit

我正在尝试使用SpriteKit和swift并且想要一个很酷的游戏,但我需要一些来自更高级别的人的建议。这是我想做的事情: 我希望有一个正常的横向视图在视图内部有一个圆圈,它是一个包含它自己的重力场。物体将在外面飞行,但游戏发生在圆圈内部。什么是最好的方法来解决这个问题? 我很难想到一个包含字段的想法以及如何将它分开。任何建议让我指出正确的方向将不胜感激。

    let field = SKFieldNode.turbulenceFieldWithSmoothness(0.5, animationSpeed: 0.1)
    //let field = SKFieldNode.radialGravityField(???)
    self.addChild(field)
    field.region = SKRegion(size: CGSize(width: 300, height: 100))
    field.position = CGPointMake(self.size.width * 0.5, self.size.height * 0.5)


    wallsNode.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
    wallsNode.physicsBody = SKPhysicsBody(circleOfRadius: 240)
    wallsNode.physicsBody?.dynamic = false
    self.addChild(wallsNode)

1 个答案:

答案 0 :(得分:0)

任何类型的SKFieldNode(包括径向重力场)都有一个关联的SKRegion,用于确定其影响区域。创建一个圆形区域(例如SKRegion(radius:30))并将其应用于重力场,它只会影响该圈内的事物。