2013-08-23 48 views
0

快速的問題,基於有多少玩家在遊戲中留下

我是相當新的編程,並遇到了一個問題如何更新我的標籤子視圖。我在製作一款遊戲,在每一輪結束時,在這一輪中獲得最高分的獲勝者已經出局,我隱藏了該玩家的playerview和標籤,但需要弄清楚如何製作一種方法,以便在我的情況4( self.players)隱藏的標籤和播放器視圖未設置,並且轉向變量重新排列,以相應於我從開關中取出的標籤。

switch (self.players) { 
    case 5: 
     switch (self.turn) { 
      case 1: 
       explanationLabel.text = [NSString stringWithFormat:@"%d",score]; 
       break; 
      case 2: 
       explanationLabelTwo.text = [NSString stringWithFormat:@"%d",score]; 
       break; 
      case 3: 
       explanationLabelThree.text = [NSString stringWithFormat:@"%d",score]; 
       break; 
      case 4: 
       explanationLabelFour.text = [NSString stringWithFormat:@"%d",score]; 
       break; 
      case 5: 
       explanationLabelFive.text = [NSString stringWithFormat:@"%d",score]; 
       break; 

例如,如果playerFour什麼是explanationLabelFour代表贏了第一回合四名球員的開關應該..

switch (self.players) { 
case 4: 
    switch (self.turn) { 
     case 1: 
      explanationLabel.text = [NSString stringWithFormat:@"%d",score]; 
      break; 
     case 2: 
      explanationLabelTwo.text = [NSString stringWithFormat:@"%d",score]; 
      break; 
     case 3: 
      explanationLabelThree.text = [NSString stringWithFormat:@"%d",score]; 
      break; 
     case 4: 
      explanationLabelFive.text = [NSString stringWithFormat:@"%d",score]; 
      break; 

的唯一途徑,我發現,使工作是做如果要查看每個標籤是否隱藏,然後相應地設置它們,但它的超級低效。這是一個骰子游戲,在三次滾動之後,這個轉折點將增加一個。

在此先感謝!

回答

0

給每個explanationLabel一個標籤,相對於你的self.turn

例如,

explanationLabel.tag = 1; 
explanationLabelTwo.tag = 2; 
explanationLabelThree.tag = 3; 
. 
. 
explanationLabelN.tag = N; 

現在,你調用一個方法命名類似,hideLabels

- (void) hideLabels { 
    explanationLabel.hidden = YES; 
    explanationLabelTwo.hidden = YES; 
    explanationLabelThree.hidden = YES; 
} 

您必須在外部開關箱呼叫前致電hideLabels

然後在箱子裏面,使用標籤

switch (self.players) { 
    case 5: 
     UILabel *tempExplanationLabel = (UILabel *)[self.view viewWithTag:self.turn]; 
     tempExplanationLabel.hidden = NO; 
} 

高達這個,你會僅顯示標籤,電流又是,如果你願意,你也可以改變框架爲特定標籤獲得標籤對象更好的結果可視性。你可以通過explanationLabel.frametempExplanationLabel.frame來做到這一點。

0

不知道我理解你需要究竟是什麼,但你可以設置一個標誌爲每個玩家

player1.isPlaying = YES; 

遍歷當前的現役球員。