2016-01-20 65 views
1

我試圖創建一個精靈並給它一個隨機的y位置,目前有些精靈產卵出了視圖或部分被切斷了。這部分我有錯的(屏幕處於橫向)和viewFrame傳遞到功能,是遊戲場景的幀讓一個精靈出現在一個隨機的y點

let enemyShip = SKSpriteNode(imageNamed: "enemyShip") 
     enemyShip.position = CGPointMake(viewFrame.maxX + enemyShip.size.height, CGFloat(arc4random_uniform(UInt32(viewFrame.maxY - enemyShip.size.height)) + UInt32(enemyShip.size.height))) 

回答

3

試試這個

func random(min min: CGFloat, max: CGFloat) -> CGFloat { 
    assert(min < max) 
    return CGFloat(Float(arc4random())/0xFFFFFFFF) * (max - min) + min 
} 

let x = random(
    min: enemyShip.size.width/2, 
    max: self.size.width - enemyShip.size.width/2 
) 

let y = random(
    min: enemyShip.size.height/2, 
    max: self.size.height - enemyShip.size.height/2 
) 

enemyShip.position = CGPointMake(x, y) 
+0

的斷言失敗,最大爲負 –

+0

你是怎麼管理的 – hamobi

+0

我從字面上複製和粘貼它,但我修復它,我認爲一個原因是因爲你試圖使x座標是隨機的,這是不希望的,它應該產生在屏幕外,然後我有更新在屏幕上移動它。那部分已經破了,所以我把x放回了 'viewFrame.maxX + enemyShip.size.height',並且調整了y並且它工作了 –