2017-08-16 20 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

あなたはちょうどあなたが

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

かを使用することができますあなたのボールのY位置を設定しようとしていると仮定すると、あなたは、xとyを設定する必要がある場合

ball.position = CGPoint(x: block1.position.x, y: block1.position.y + 20) 
関連する問題