2016-06-25 10 views
1

私はグラデーションカラーを作成しようとしていますSKShapeNodeこのSKShapeNodeグラデーションカラーコードで何が問題になっていますか?

theGoogleのコードは次のとおりですが、color1が黒の場合のみ動作します。

CIColor.init(red: 0, green: 0, blue: 0, alpha: 1.0) 

次の色は何でもかまいません。

enum GradientDirection { 
    case up 
    case left 
    case upLeft 
    case upRight 
} 
extension SKTexture { 
    convenience init(size:CGSize,color1:CIColor,color2:CIColor,direction:GradientDirection = .up) { 
     let coreImageContext = CIContext(options: nil) 
     let gradientFilter = CIFilter(name: "CILinearGradient") 
     gradientFilter!.setDefaults() 
     var startVector:CIVector 
     var endVector:CIVector 
     switch direction { 
     case .up: 
      startVector = CIVector(x: size.width/2, y: 0) 
      endVector = CIVector(x: size.width/2, y: size.height) 
     case .left: 
      startVector = CIVector(x: size.width, y: size.height/2) 
      endVector = CIVector(x: 0, y: size.height/2) 
     case .upLeft: 
      startVector = CIVector(x: size.width, y: 0) 
      endVector = CIVector(x: 0, y: size.height) 
     case .upRight: 
      startVector = CIVector(x: 0, y: 0) 
      endVector = CIVector(x: size.width, y: size.height) 

     } 
     gradientFilter!.setValue(startVector, forKey: "inputPoint0") 
     gradientFilter!.setValue(endVector, forKey: "inputPoint1") 
     gradientFilter!.setValue(color1, forKey: "inputColor0") 
     gradientFilter!.setValue(color2, forKey: "inputColor1") 
     let cgimg = coreImageContext.createCGImage(gradientFilter!.outputImage!, fromRect: CGRect(x: 0, y: 0, width: size.width, height: size.height)) 
     self.init(CGImage:cgimg) 
    } 
} 

私は色が黒以外のものになりたい。私はこのコードの何が間違っているのか理解できません。次のように私はSKShapeNodeを定義します。

let textureSize = CGSize(width: shapeNode.frame.width, height: shapeNode.frame.height) 
let bottomColor = CIColor.init(red: 0, green: 0, blue: 0, alpha: 1.0) 
let topColor = CIColor.init(red: 225, green: 255, blue: 255, alpha: 1.0) 
let shapeTexture = SKTexture(size:textureSize, color1:bottomColor, color2:topColor, direction:GradientDirection.up) 
shapeNode.fillTexture = shapeTexture 
self.addChild(shapeNode) 

は、すべてのヘルプ感謝します!

+0

[CIColor]のRGB値は[0、1]にする必要があります。 255は有効な値ではありません。 – 0x141E

答えて

1

CIColorのRGB値は[0、1]にする必要があります。 255は有効な値ではありません。

関連する問題