2015-07-13 106 views
0

我想使用隨機選擇4個敵人並將其呈現在場景中。爲此我做了這個:如何隨機選擇一個SKSpriteNode?

func enemyPicker() -> SKSpriteNode { 
    var enemyArray = [mouse, robot, drone, block, bird] 
    var countArray = UInt32(enemyArray.count) 
    var pickOneEneny = arc4random_uniform(countArray) 
    var randomElement = Int(pickOneEnemy) 

    return enemyArray.randomElement 
} 

但Xcode對我說SKSpriteNode does not have a member named randomElement。而且它肯定不會,但是我怎麼會對我的函數說我需要它從數組中挑選並將這個隨機Int分配給實際的敵人?我試過使用this answer,但它不適合我。我也嘗試改變 - > SKSpriteNode SKTexture,字符串和「T」,並沒有任何運氣。

我SpriteNodes聲明,如:

var mouse = SKSpriteNode() 
let mouseAtlas = SKTextureAtlas(named: "mouse") 
var mouseArray = [SKTexture]() 
mouseArray.append(mouseAtlas.textureNamed("mouse_0")); 
mouseArray.append(mouseAtlas.textureNamed("mouse_1")); 
mouseArray.append(mouseAtlas.textureNamed("mouse_2")); 

mouse = SKSpriteNode(texture: mouseArray[0]); 
self.mouse.position = CGPointMake(CGRectGetMaxX(self.frame), CGRectGetMidY(self.frame) - 138) 
self.mouse.size = CGSizeMake(self.mouse.size.width, self.mouse.size.height + mouse.size.height/2) 

self.mouse.name = "mouse" 
self.addChild(mouse) 

回答

1
func enemyPicker() -> SKSpriteNode { 
    let enemyArray = [mouse, robot, drone, block, bird] 
    return enemyArray[Int(arc4random_uniform(UInt32(enemyArray.count)))] 
} 
+0

它說,'找不到「init」的接受所提供的arguments'超載。爲什麼? – TimurTest

+0

你需要展示你如何宣佈你的spritenodes(鼠標,機器人等) –

+0

我已經更新我的問題與代碼 – TimurTest