【问题标题】:swift spritekit physics body materializing in a weird placeswift spritekit 物理体在一个奇怪的地方实现
【发布时间】:2014-11-23 07:37:12
【问题描述】:

我正在尝试将物理实体放在一条线上。

由于某种原因,物理体最终在左下角实体化。

如何控制物理体的位置?我的印象是,一旦我将身体连接成一个形状,它就会自动形成它的形状。

代码如下:

    var distance = calculateDistance(wayPoints[wayPoints.count-1], point2: wayPoints[wayPoints.count-2])

    var linePhysicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: distance, height: 1.0))
    linePhysicsBody.categoryBitMask = PhysicsCategory.Line
    linePhysicsBody.contactTestBitMask = PhysicsCategory.Ball
    linePhysicsBody.collisionBitMask = PhysicsCategory.Ball
    linePhysicsBody.dynamic = false
    linePhysicsBody.usesPreciseCollisionDetection = true

    lineNode.removeFromParent()
    lineNode = SKShapeNode()
    lineNode.physicsBody = linePhysicsBody
    lineNode.name = "drawingLine"
    lineNode.path = pathToDraw
    lineNode.lineWidth = 5.0
    lineNode.strokeColor = UIColor.redColor()
    lineNode.glowWidth = 1.0

    self.addChild(lineNode)

【问题讨论】:

  • 形状是相对于节点位置的,节点的位置是什么?默认为 0,0。
  • 节点应该在红线的位置。

标签: ios swift sprite-kit skphysicsbody


【解决方案1】:

你还没有定位你的线节点。这意味着默认情况下不在点(0,0)上。 正如 LearnCocos2D 在他的评论中提到的那样。您正在绘制一条相对于您的线节点位置的路径。这不会影响你的physicsBody。这仍然定位在 (0,0)

【讨论】:

  • ahh..ok,所以即使我设置了以下节点,节点也没有对齐:lineNode.physicsBody = linePhysicsBody。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
相关资源
最近更新 更多