20250


当方、初心者です。  
SpriteKitで描いたNode(図形など）の色を、UISegmentedControl（button)などを使って、任意に変更することは可能でしょうか？  
一度Viewに緑色で表示した後、色を変更できるようにしたいと思っています。  
緑、黄、赤の三色のうちから任意の色を選べるように設定したいです。  
ご教授お願いします。


CC BY-SA 3.0
2015-12-21T06:49:36.470
20247
2018-09-18T08:39:23.837
13156
question
swift
SpriteKitで描いたNodeの色を任意で変更したい。


`SKSpriteNode`限定で説明します。  
`SKSpriteNode`の色を、プロパティ`color`で変更することができます。が、その前に、プロパティ`colorBlendFactor`を、デフォルトの`0.0`から最大値`1.0`までの値に変更しておきます。

[code]

    nodeA.colorBlendFactor = 0.5
    nodeA.color = UIColor.redColor()
    
[/code]

`colorBlendFactor`の値が大きいと、比例して`color`の影響が大きくなります。デフォルトでは`0.0`なので、`color`を変更しても、ノードの色に変化が見られません。なので、このプロパティは関係ないのかと、早とちりする人が出てくるかもしれません。`colorBlendFactor`と`color`の組み合わせで、適切な色調整をしてください。

[![画像の説明をここに入力](https://i.stack.imgur.com/qXCFd.png)](https://i.stack.imgur.com/qXCFd.png)

* * *

`SKSpriteNode`以外のノードについては、それぞれのクラスリファレンスを読んでください。


CC BY-SA 3.0
2015-12-21T07:47:09.537
20250
2015-12-21T07:47:09.537
7362
20247
answer


遅レスなので、とっくに解決済みと思いますが、他の方のためにも念のため。

[code]

    //円を表示
    myShapeNode = SKShapeNode(circleOfRadius: 50)
    myShapeNode?.fillColor = SKColor.red
    self.addChild(myShapeNode!)
    
[/code]

色を変える場合は、以下のようです。

[code]

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        //円の色を変える
        myShapeNode?.fillColor = SKColor.blue
    }
    
[/code]


CC BY-SA 4.0
2018-09-18T08:39:23.837
48503
2018-09-18T08:39:23.837
19684
20247
answer