2016-04-13 48 views
0

Sahnede sprite'ı eklemek için çok fazla şey denedim ve hepsi işe yaradı. Sorun, ekranın yarısı ve ekranın dışında kalan sürenin yarısıdır.Ekranda DAİMA olan rastgele bir konuma nasıl bir skspritenode eklenir

İşte ilk denedim.

func placeButtons() { 

     let button1 = SKSpriteNode(imageNamed: "button1") 

     let PositionX1 = arc4random_uniform(UInt32(self.frame.width)) 
     let PositionY1 = arc4random_uniform(UInt32(self.frame.height)) 

     button1.position.y = CGFloat(PositionY1) 
     button1.position.x = CGFloat(PositionX1) 

     self.addChild(button1) 
} 

İşte son denedim.

func placeButtons() { 
     let button1 = SKSpriteNode(imageNamed: "button1") 

     let sizeX = Int(CGRectGetMaxX(self.frame)) 
     let sizeY = Int(CGRectGetMaxY(self.frame)) 
     var randomX = CGFloat(Int(arc4random()) % sizeX) 
     var randomY = CGFloat(Int(arc4random()) % sizeY) 

     button1.position = CGPointMake(randomX, randomY) 
     self.addChild(button1) 

} 

Her zaman ekranda görünmesi garantili düğüme ihtiyacım var.

Yardımlarınız için şimdiden teşekkür ederiz!

cevap

0

Düğmenizi self.frame içine rastgele yerleştirirseniz, bazen yalnızca düğmenin başlangıcı görünür. Zaten, istediğiniz düğme boyutlarını biliyorum bu

let PositionX1 = arc4random_uniform(UInt32(self.view.bounds.size.width - myButtonWidth)) 
    let PositionY1 = arc4random_uniform(UInt32(self.view.bounds.size.height - myButtonHeight)) 

için randomiser güncellemek iyi bir öğretici bu konuda var ise kullanmanız gereken

maksimum genişlik & yüksekliği

self.view.bounds.size.width - button1.frame.width  
self.view.bounds.size.height - button1.frame.height 

böyledir - http://www.ymc.ch/en/ios-7-sprite-kit-setting-up-correct-scene-dimensions

+0

let button1 = SKSpriteNode (imageNamed: "button1") button1.size = CGSize (genişlik: 50, yükseklik: 5) 0) izin PositionX1 = arc4random_uniform (Uınt32 (self.frame.width - button1.size.width)) izin PositionY1 = arc4random_uniform (Uınt32 (self.frame.height - button1.size.height)) button1.position .y = CGFloat (KonumY1) button1.position.x = CGFloat (KonumX1) self.addChild (button1) –

+0

bu doğru mu? Çünkü bu hala ekrandan düğmeler çıkıyor ve yarı yolda. –

+0

Doğru görünüyor - daha denedin mi? – Russell