2016-06-21 12 views
-3

私はこれがうまくいくと思っていましたが、私の機能が不適切だと感じました。それはコンパイルされますが、何もしませんし、私はそれがこのように動作することも確信していません。私は迅速かつ感謝するために非常に新しいです。Swift Xcode画面のタップごとにシェイプの色を切り替える方法

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    /* Called when a touch begins */ 

    for touch in touches { 
     _ = touch.locationInNode(self) 

     colorSwitch() 
       } 
} 

func colorSwitch(){ 

    if (ShapeY.color == UIColor.whiteColor()) { 
     ShapeY.color = UIColor.blackColor() 
    } 
    else if (ShapeY.color == UIColor.blackColor()) { 
     ShapeY.color = UIColor.whiteColor() 
    } 
} 
+0

だけ円を。画面の中央にサークルがあり、タップするとその色が黒から白に変わります。私はより明確にすべきだった。 – yellowlan

+0

申し訳ありませんが、これまでこのコメントに気づいていませんでした。これはスプライトノードでした。 colourTlendFactorをcolourTTという変数CRLloatに1に設定するという別のアイデアがありました。私はそれを設定して、-1で乗算して、白と黒の間で切り替えるようにタッチがあったときに-1を乗算したいと考えました。 'オーバーライドtouchesBegan FUNC(タッチ:を設定し、withEventイベント:たUIEvent?){ /*タッチが始まるときに呼び出されます*/ colourTT * = -1 }'これはしかし私にとってはまったく機能しません。 。 – yellowlan

+0

私は余分な変数colourTTを取り除いて、これをやっただけですが、ワンタッチで止まるようです。どうすれば他のタッチを見ることができますか? touchesBegan(タッチ:を設定し、withEventイベント:たUIEvent?)FUNC 'オーバーライド' – yellowlan

答えて

-1

==オペレータを使用して色を比較することはできません。したがって、両方のif文はfalseと評価されます。 ==を変更してみてください:

ShapeY.color.isEqual(UIColor.whiteColor()) 

あなたは、オプションのラップを解除する!を使用する必要がある場合があります

ShapeY.color!.isEqual(UIColor.whiteColor()) 
+0

私が入れたとき、私はエラーを取得します!私はisEqualに==を変更したが、今は何も起こらないが、少なくとも私は何かに取り組んでいる。私はif文を理解する必要がありますか?私の機能colourSwitchはタップがあるたびに呼び出されるのだろうか、それとも一度呼び出されるのだろうか? – yellowlan

関連する問題