2016-07-24 10 views
4

私はStructuresについて学び始めました。構造を使って解決できると思いますが、わかりません。構造体を使用してこのコードを短縮するにはどうすればよいですか?

ケース:私は、プレーヤーがロックを解除できる多くの成果を持つVCを持っています。 成果ごとに: 1.成果画像とテキストの周りの境界画像 2.成果画像(すべての成果は成績がロックされていることを示す単純な「ロック」画像) 3.成果テキスト 4.ブール値達成状況を判断する(false = locked、true = unlocked) ゲームをプレイしている間に、いくつかの成果を達成することができます。そうすれば、ブール値はtrueに設定されます。プレーヤーが成績VCに戻ったとき、成績イメージはその成績の正しいイメージに設定する必要があります。

問題:以下のように私は今、自分のコードを持っている:

func SetImagesForPowerUps() 
    { 
     if UnlockedAchievement1 == true 
     { 
      Achievement1Text.textColor = UIColor.greenColor() 
      Achievement1Image.image = UIImage(named: "Achievement1Unlocked") 
     } 
     if UnlockedAchievement2 == true 
     { 
      Achievement2Text.textColor = UIColor.greenColor() 
      Achievement2Image.image = UIImage(named: "Achievement2Unlocked") 
     } 
    } 

あなたが見ることができるように、私は何度も私のコードを繰り返す必要があり、それが仕事の残業がたくさんあります。私は知っている知識を持っていないことを除いて、これをより迅速に解決することができることを除いて、これに対してより速い方法があると確信しています。

質問:このコードを短縮して動作させるにはどうすればよいですか?

+0

あなたはこれまでにループとループについて聞いたことがありますか? –

+0

私はすでに自分のコードで配列を使用していますが、私はその概念を理解しています!ただし、inループではありません。私は何を使うべきか分からない。どのように私の質問に答えるには、ループと配列を使用してですか? – Nahaku

+0

MVCについてあまり気にしない場合は、パワーアップをサブクラス化し、必要なデータを保持するための変数を追加してから、VCにサブクラスの配列を作成します。 –

答えて

2

//達成数は?

var achievements:[Bool] = [] 
var achievementText:[UILabel] = [] //I am not sure what achievementText Parent class is 
var achievementImage:[UIImage] = [] //AchievementImage is subclass of UIImage? Not sure what achievementImage parent class is. 

for index in 0 ..< x 
    //Where x is the number of possible achievements, default all achievements to false at the very beginning of the app or wherever. 
    achievements.append(false) 
} 

func SetImagesForPowerUps() { 
    for index in 0 ..< achievements.count { 
     if(achievements[index]) { 
      achievementText[index].textColor = UIColor.greenColor() 
      achievementImage[index].image = UIImage(named: "AchievementUnlocked") 
     } 
    } 
} 

あなたが達成をロック解除すると、あなたは彼らがどのレベルにいるかを判断します。次に、設定するachievements[level+1] = true//(If you use levels starting at 1)

+0

少し遅くthx:D – Nahaku

+0

あなたは7月24日に尋ねました、私は7月24日に回答しました – impression7vx

+0

あなた、しかし私の応答 – Nahaku

関連する問題