2015-10-07 101 views
0

所以我有這個精靈套件遊戲,這是在swift 2編碼。遊戲包括這些彩色圓圈(綠色,紅色,紫色,黃色,藍色)倒下屏幕從相同的高度開始,但從不同的寬度開始。在屏幕的底部有一個欄,告訴你什麼顏色不按。所以如果酒吧是黃色的,並且你點擊一個黃色的圓圈,你會失去。我已經有失敗的實現,但我似乎無法弄清楚如何檢測單擊的圓形不是欄上的顏色。這是我對顏色檢測的代碼。請記住,變量「colorNeeded」是你不想點擊檢測精靈的顏色是不是另一個精靈的顏色

switch colorNeeded { 
    case SKColor.redColor(): 
     if Red.containsPoint(location) { 
      print("Color Needed is Blue, Blue Circle Clicked") 
      print("Lose, score is: \(score)") 
      changeColorNeeded() 
     } 
     break 

    case SKColor.blueColor(): 
     if Blue.containsPoint(location) { 
      print("Color Needed is Blue, Blue Circle Clicked") 
      print("Lose, score is: \(score)") 
      changeColorNeeded() 
     } 
     break 

    case SKColor.yellowColor(): 
     if Yellow.containsPoint(location) { 
      print("Color Needed is Blue, Blue Circle Clicked") 
      print("Lose, score is: \(score)") 
      changeColorNeeded() 
     } 
     break 

    case SKColor.greenColor(): 
     if Green.containsPoint(location) { 
      print("Color Needed is Blue, Blue Circle Clicked") 
      print("Lose, score is: \(score)") 
      changeColorNeeded() 
     } 
     break 

    case SKColor.purpleColor(): 
     if Purple.containsPoint(location) { 
      print("Color Needed is Blue, Blue Circle Clicked") 
      print("Lose, score is: \(score)") 
      changeColorNeeded() 
     } 
     break 

    default: 
     if Purple.containsPoint(location) || Green.containsPoint(location) || Yellow.containsPoint(location) || Blue.containsPoint(location) || Red.containsPoint(location){ 
      score++ 
      ("Good Color Clicked") 
      ChangeCounter++ 
      if ChangeCounter == 5 { 
       changeColorNeeded() 
      } 
     } 
     break 
} 

回答

0

我想補充一個elseif陳述,要麼設置一個標誌,表明你沒有點擊錯了顏色的顏色或者調用具有defaultif語句中的代碼的方法。事情是這樣的:

這是假的,直到證明陽性:

var isSafeClick = false 

case SKColor.redColor(): 

    if Red.containsPoint(location) { 

     print("Color Needed is Blue, Blue Circle Clicked") 
     print("Lose, score is: \(score)") 
     changeColorNeeded() 
    } else { 
     isSafeClick = true 
    } 

    break 

等,爲在交換機的每個if聲明。在switch語句的結束,加上在另一個if,看是否isSafeClicktrue

if (isSafeClick) { 
    score++ 
    ("Good Color Clicked") 
    ChangeCounter++ 
    if ChangeCounter == 5{ 
     changeColorNeeded() 
    } 
} 

對於方法來說,只要把代碼中直接本文入一個方法(名稱類似於「safeScorePoint」或者其他),並在每個if/elseelse中調用該方法。

+0

我不知道switch語句有別的。謝謝 – jacobsan420

+0

switch語句沒有,'if'語句在_inside_ case中可以有'else'。別客氣! – Gliderman