2016-07-24 91 views
-1

對於我的第一個應用程序,我正在製作一個遊戲,玩家可以在其中改變難度。當他選擇一個難度時,一些值必須改變。如何通過Swift中的字符串更改按鈕名稱?

其中一個值是「maxDynamites」,我使用了兩個困難,簡單和正常。在輕鬆,值是3和正常模式值爲1

現在,我宣佈它如下:

func setDifficulty() 
{ 
    if Difficulty == 0 
    { 
     maxDynamites = dif0MaxDynamites 
     else if Difficulty == 1 
     { 
      maxDynamites = dif1MaxDynamites 
     } 
    } 
} 

這將這樣的伎倆,但我計劃了很多更要使用的變量和更多的困難。有沒有一種方法可以移除dif0MaxDynamites並將其更改爲如果難度設置爲正常會自動將「0」更改爲「1」的東西?我不認爲如果所有的時間都是正確的,並且以這種方式我必須複製粘貼我的代碼以應付大量的困難......任何幫助都是值得歡迎的。

+1

順便說一句,這個問題的標題與這個問題有什麼關係? – Mattias

回答

0

將您的設置包含在struct中可能會有所幫助;

struct DifficultySettings { 
    static let easyModeSettings = DifficultySettings(maxDynamites: 3, maxHealth: 100, maxShields: 5) 
    static let normalModeSettings = DifficultySettings(maxDynamites: 1, maxHealth: 80, maxShields: 2) 
    static let hardModeSettings = DifficultySettings(maxDynamites: 1, maxHealth: 40, maxShields: 1) 

    let maxDynamites: Int 
    let maxHealth: Int 
    let maxShields: Int 
} 

static變量可以包含所有不同的參數。易於修改等

func setDifficulty(mode: DifficultySettings) { 
    // Setup the game based on settings 
    print("Max dynamites: \(mode.maxDynamites)") 
    print("Max health: \(mode.maxHealth)") 
    print("Max shields: \(mode.maxShields)") 
} 

您可將按鈕掛鉤喜歡的東西:

func setDifficultyToEasy() { 
    setDifficulty(.easyModeSettings) 
} 

func setDifficultyToNormal() { 
    setDifficulty(.normalModeSettings) 
} 

func setDifficultyToHard() { 
    setDifficulty(.hardModeSettings) 
} 

有了這樣的解決方案,可以很容易地添加更多的都困難和遊戲參數。

您可以將DifficultySetting傳遞給您的遊戲邏輯,您的遊戲邏輯可以使用其中包含的值。

+0

是的!我需要知道的一切:) – Nahaku