配列内の色に基づいて、menusceneのノードのfillcolorを変更しようとしています。Swift Spritekitは、複数回タップしたときのノードの色を変更します。
私は4色で塗りつぶした配列を持っています。ノードを押すと、その位置に基づいて色をフィルタリングする必要があります。私は再びそれが緑に変わり、それをタップすると、それは、赤に色を変更する必要があります一度私はノードをタップするので、別のタップが、これは一つだけを読み、しかし青
var colors = [UIColor.blue, UIColor.red, UIColor.green, UIColor.purple]
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first!
var index = 0
if changeColor.contains(touch.location(in: self)) {
index += 1
changeColor.fillColor = colors[index]
if index == 3 {
index = 0
}
}
}
に戻った後、紫色に変更し、そしてだろうタップする必要があります。複数のタップを登録する必要があります。
私は、そのタップを読んだと思いますが、あなたは0に、この機能は非常にあなただけの配列の最初の色を見ることができます実行するたびにインデックスをリセットしています。関数の外でvar index = 0を移動すると、 – Steve
も色を変更した後にインデックス+ = 1を移動するか、色の色が表示されません。 – Steve
touchesBegan()を入力するたびにインデックスがリセットされます。それをスコープの外に移動して、その間の呼び出しを持続させるようにします。 – Fluidity