2017-08-16 49 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) 
相关问题