swift - 根据另一个节点的随机位置移动一个节点

标签 swift sprite-kit

我想让我的节点(球)总是根据 block 1 的结束位置在我的其他节点 block 1 之上重置。但是,我想不出任何可以帮助我做到这一点的代码。我正在考虑制作一个函数来表示 ball.position = block1 + 20 但我不知道如何去做。感谢您的帮助!

代码:

func random() -> CGFloat {
    return CGFloat(Float(arc4random()) / 0xFFFFFFFF)
}

func random(min: CGFloat, max: CGFloat) -> CGFloat {
    return random() * (max - min) + min
}


func resetScene (){

     let ball = childNode(withName: BallCategoryName) as! SKSpriteNode
    ball.removeFromParent()

    ball.physicsBody?.velocity = CGVector( dx: 0, dy: 0 )
    ball.physicsBody?.collisionBitMask = BallCategory
    ball.physicsBody?.collisionBitMask = BorderCategory | PaddleCategory
    ball.zRotation = 0.0
    addChild(ball)
    let block1 = childNode(withName: Block1Name) as! SKSpriteNode
    block1.removeFromParent()
    let actualX = random(min:85, max: 300)
    block1.position = CGPoint(x: actualX, y: 190)
    addChild(block1)

//ball.position = CGPoint(x: , y: )

//This is the line i would like to change



    canRestart = false


}

最佳答案

假设您只是想设置您可以使用的球的 Y 位置

ball.position.y = block1.position.y + 20

或者如果你需要设置x和y

ball.position = CGPoint(x: block1.position.x, y: block1.position.y + 20)

关于swift - 根据另一个节点的随机位置移动一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45721418/

相关文章:

uinavigationbar - 在 iOS8 Swift 中更改 UINavigationBar 标题

ios - 制作按钮打开链接 - Swift

ios - 无法将 Firebase 连接到我的 Xcode swift 应用程序?

ios - 带有 SpriteKit 的 UITableView

ios - SKLightNode 性能问题

ios7 - SpriteKit碰撞检测不起作用

ios - 从 TextFields 获取 tableViewCell 的所有值

多次注册 Swift SpriteKit 碰撞

swift - 将自定义类 SKSpriteNode 加载到 SKScene 时应用程序崩溃

iOS 13 在选项卡栏 subview Controller viewWillAppear 不被调用