func colorBall() {
let colorize1 = SKAction.colorizeWithColor(UIColor.redColor(), colorBlendFactor: 1.0, duration: 0.1)
let colorize2 = SKAction.colorizeWithColor(UIColor.greenColor(), colorBlendFactor: 1.0, duration: 0.1)
let colorize3 = SKAction.colorizeWithColor(UIColor.blueColor(), colorBlendFactor: 1.0, duration: 0.1)
let actions = [colorize1, colorize2, colorize3]
let randomIndex = Int(arc4random_uniform(3))
self.Ball.runAction(actions[randomIndex])
}
var colorBucket = [UIColor]()
func randomColor() -> UIColor {
if colorBucket.isEmpty {
fillBucket()
}
let randomIndex = Int(arc4random_uniform(UInt32(colorBucket.count)))
let randomColor = colorBucket[randomIndex]
colorBucket.removeAtIndex(randomIndex)
return randomColor
}
func fillBucket() {
colorBucket = [UIColor.redColor(), UIColor.greenColor(), UIColor.blueColor()]
}
當我跑在我的遊戲這個代碼,並打印出我的球的顏色值,有時打印出的數字是這樣的:RGB值在着色時做奇怪的事情? - 斯威夫特
UIDeviceRGBColorSpace 1 2.98023e-08 2.98023e-08 1
它爲什麼要這樣做呢?我只想讓它說:UIDeviceRGBColorSpace 0 0 1 1如果它是藍色的,IDeviceRGBColorSpace 1 0 0 1如果它是紅色的等
如何保持這些數字不會高於1或遠低於1?是什麼讓他們在我的代碼中做到這一點?
創建新的.swift文件後,導入UIKit並粘貼此代碼,是否需要將任何內容放入我的GameScene.swift文件中? –
好吧,你現在在一個顏色實例上調用'isEqual:'的地方,說'someSprite.color.isEqual(anotherSprite.color)',你應該用'isVisuallyEqual:'替換掉調用。 –