如何随机选择一个 SKSpriteNode? [英] How to randomly choose a SKSpriteNode?

查看:34
本文介绍了如何随机选择一个 SKSpriteNode?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用随机从 4 个敌人中进行选择并将其呈现在场景中.为此,我做了这个:

I want to choose from 4 enemies using random and present it on scene. For that purpose I've made this:

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 没有名为 randomElement 的成员.它肯定不会,但是我如何对我的函数说我需要它从数组中选择随机 Int 并将其分配给实际的敌人?

But Xcode says to me that SKSpriteNode does not have a member named randomElement. And it surely doesn't, but how would I say to my function that I need it to pick and assign that random Int to an actual enemy from array?

我尝试使用这个答案 但这对我不起作用.我也尝试将 -> SKSpriteNode 更改为 SKTexture、String 和T",但没有任何运气.

I tried to use this answer but it's not working for me. I also tried to change -> SKSpriteNode to SKTexture, String and "T" and had not any luck with it.

我的 SpriteNode 声明如下:

My SpriteNodes are declared like:

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)

推荐答案

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

这篇关于如何随机选择一个 SKSpriteNode?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆