2017-08-16 50 views
1

我想使它成爲這樣,我的節點(球)總是以塊1結束的位置結束在我的另一個節點塊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 


} 

回答

1

假設你只是想你的球的Y位置,你可以使用

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

,或者如果您需要設置x和y

ball.position = CGPoint(x: block1.position.x, y: block1.position.y + 20) 
相關問題