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()]
}
Wenn ich diesen Code in meinem Spiel laufen und aus dem Farbwert meines Ball drucken, druckt es manchmal aus Zahlen wie folgt aus:RGB Werte, die beim Kolorieren seltsame Dinge tun? - Swift
UIDeviceRGBColorSpace 1 2.98023e-08 2.98023e-08 1
Warum es dies tut? Ich möchte nur sagen: UIDeviceRGBColorSpace 0 0 1 1 wenn es blau ist, IDeviceRGBColorSpace 1 0 0 1 wenn es rot ist, etc.
Wie kann ich verhindern, dass diese Zahlen höher als eins oder viel niedriger als eins werden? Was bringt sie dazu, das in meinem Code zu tun?
Nachdem ich eine neue SWIFT-Datei erstellt habe, importiere UIKit und füge diesen Code ein. Muss ich etwas in meine GameScene.swift-Datei einfügen? –
Nun, an jeder Stelle, an der Sie gerade 'isEqual:' aufrufen, sagen Sie 'sameSprite.color.isEqual (anotherSprite.color)', dass Sie den Aufruf durch 'isVisuallyEqual:' ersetzen sollen. –