我试图在两点之间添加SKNode,如下图所示。

ios - 在两点之间添加块。 SpriteKit-LMLPHP

是)我有的:

  • 我用此代码计算这两点之间的距离(效果很好):
     func distanceCount(_ point: CGPoint) -> CGFloat {
     return abs(CGFloat(hypotf(Float(point.x - x), Float(point.y - y))))  }
    
  • 然后我计算中间点(也很好)
      func middlePointCount(_ point: CGPoint) -> CGPoint {
      return CGPoint(x: CGFloat((point.x + x) / 2), y: CGFloat((point.y + y) / 2))
       }
    

  • 最后,此函数添加了我的对象(SKNode):
    func addBlock(_ size:CGSize, rotation:CGFloat, point: CGPoint) -> SKNode{
    
            let block = SKSpriteNode(color: UIColor.lightGray , size: size)
            block.physicsBody = SKPhysicsBody(rectangleOf: block.frame.size)
            block.position = point //This is my middle point
            block.physicsBody!.affectedByGravity = false
            block.physicsBody!.isDynamic = false
            block.zRotation = rotation
    
            return block
    
        }
    

    摘要:我的addBlock函数添加宽度正确且居中于正确位置的对象,但是角度错误。

    注意:我试图创建应该计算角度的函数,但是它们都是错误的:/。

    我的问题:我如何获得正确的角度,或者还有其他一些方法可以达到我的目标吗?

    如果您需要更多详细信息,请告诉我。

    谢谢 :)

    最佳答案

    要获得两点之间的角度,您需要使用以下内容

    atan2(p2.y-p1.y, p2.x-p1.x)
    

    关于ios - 在两点之间添加块。 SpriteKit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40682754/

    10-09 14:24