2015-07-13 126 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