我正在使用以下代碼爲我的遊戲中的玩家生成隨機圖像。將名稱設置爲SKSpriteNode?
var playerTexture = [SKTexture]()
playerTexture.append(SKTexture(imageNamed: 「red」))
playerTexture.append(SKTexture(imageNamed: 「blue」))
playerTexture.append(SKTexture(imageNamed: 「green」))
let rand = Int(arc4random_uniform(UInt32(playerTexture.count)))
let chosenColor = playerTexture[rand] as SKTexture
let playerSkin = chosenColor
上面的代碼生成稱爲playerSkin隨機SKTexture(紅色,藍色或綠色)。
player = SKSpriteNode(texture: playerSkin)
player.size = CGSize(width: 50, height: 50)
player.position = location
self.addChild(player)
player.name = chosenColor.description
然後,這段代碼的下一部分將創建一個SKSpriteNode播放器,併爲它分配一個隨機的紅色,藍色或綠色紋理。但主要的事情是代碼的player.name分配給使用隨機選擇的圖像:
player.name = chosenColor.description
然後我檢查使用打印的球員的名字。
print(player.name)
然而,當我檢查了球員的名字,它顯示爲這取決於隨機圖像以下的一個選擇:
可選(」 \‘紅色\’(120×120) 「)
可選(」 \ '藍\'(120×120) 「)
可選(」 \ '綠色\'(120×120) 「)
我的圖片被稱爲」 紅「,」藍色「和」綠色「,位於Assets.xc Xcode中的資產文件夾。
我的圖像是120 x 120,但爲什麼這些長的隨機名出現?我怎樣才能將「紅色」,「藍色」或「綠色」作爲玩家的名字?
我需要名稱纔是正確的「紅色」,「藍色」或「綠色」,因爲我想稍後使用player.name用於不同的功能。
權。沒有辦法從'SKTexture'本身檢索名字,所以你需要存儲你用來創建它的字符串。 (簡化的一種方法是僅*存儲字符串,並在分配'selectedColor'時初始化內聯'SKTexture'。) – andyvn22
感謝claassenApps!這是最簡單的方法!我是編程新手,所以這是完美的。乾杯! – Questions