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 Ценности делают странные вещи при раскраске? - Swift
UIDeviceRGBColorSpace 1 2.98023e-08 2.98023e-08 1
Почему он это делает? Я просто хочу сказать: UIDeviceRGBColorSpace 0 0 1 1, если он синий, IDeviceRGBColorSpace 1 0 0 1, если он красный, и т. Д.
Как я могу сохранить эти цифры выше одного или намного ниже одного? Что заставляет их делать это в моем коде?
После того как я создаю новый .swift-файл, импортируйте UIKit и вставьте этот код, мне нужно что-то поместить в файл GameScene.swift? –
Ну, в любом месте, которое вы теперь вызываете 'isEqual:' в экземпляре цвета, например 'someSprite.color.isEqual (anotherSprite.color)' вы должны заменить вызов 'isVisuallyEqual:'. –