2017-03-14 3 views
0

スプライトを円滑に色をループに変更させたいと思います。しかし、私が見つけたものはすべてUIKitを使っていました。 UIキットを使用せずにこれを行う方法はありますか?これは私がUIKitでやりたいことですが、スプライトキットのスプライトの色を常に変更します

let red = Float((arc4random() % 256))/255.0 
    let green = Float((arc4random() % 256))/255.0 
    let blue = Float((arc4random() % 256))/255.0 
    let alpha = Float(1.0) 

    UIView.animate(withDuration: 1.0, delay: 0.0, options:[.repeat, .autoreverse], animations: { 
     self.view.backgroundColor = UIColor(colorLiteralRed: red, green: green, blue: blue, alpha: alpha) 
    }, completion:nil) 

ありがとうございます。

+0

が...もう少し、すべてを説明し、あなたがこれまでにしようとしているかを示す... – Whirlwind

+0

私はすべてがスムーズに変化したいと言うのを忘れ@Whirlwind申し訳ありません。静的に変更するのではなく、静的に変更するのではなく、UIKit – joshLor

答えて

2

おそらく、このようなものを使用して背景を変更できます。おそらく、プロジェクト全体で使用できるように、おそらくgetRandomColorを拡張としてUIColorに移動することができます。

override func sceneDidLoad() { 

    func getRandomColor() -> UIColor { 
     return UIColor.init(red: CGFloat(arc4random())/CGFloat(UInt32.max), 
          green: CGFloat(arc4random())/CGFloat(UInt32.max), 
          blue: CGFloat(arc4random())/CGFloat(UInt32.max), 
          alpha: 1) 
    } 

    if let frame = self.scene?.frame { 
     let background = SKSpriteNode(color: .blue, 
             size: CGSize(width: frame.width, 
                height: frame.height)) 

     background.run(SKAction.repeatForever(
      SKAction.sequence([ 
       SKAction.run { 
        background.run(SKAction.colorize(with: getRandomColor(), 
                colorBlendFactor: 1, 
                duration: 1)) 
       }, 
       SKAction.wait(forDuration: 1)]) 
     )) 

     self.addChild(background) 
    } 

} 
+0

のようなコードを作成します。 – joshLor

+0

上記のUIkitでおおよそのものを追加しました – joshLor

+0

背景の色を変更するアニメーションを作成しようとしていますか?それとも円ですか? –

関連する問題