2013-07-28 61 views
0
if(Camb.killaura){ 
    Camb.vkillaura = false; 
} 

if(Camb.vkillaura){ 
    Camb.killaura = false; 
} 

我正在爲一款名爲「我的世界」的遊戲製作一個改裝過的客戶端。有兩種類型的殺死光環,一種在一些服務器上工作,另一種在其他服務器上工作。假設我有VKillaura,我想用KillAura代替,我會按下一個按鈕,他們會切換。這工作。但是,如果我使用KillAura並且我想切換到VKillAura,它不會讓我。我認爲這是因爲Eclipse從上到下閱讀,而我的VKillaura if語句低於我的殺光環。我該如何解決?如果這是開啓,這不是,但如果是這樣,這不是

+1

@David。請看清楚,他不會在'if'條件中將相同的變量設置爲false。 –

+4

這個標題令人難以置信的混亂。 – Thor84no

+0

@RohitJain:啊,你說得對。更有意義的變量名稱會使這一點變得更加明顯。 (可能使預期的邏輯更容易實現/調試/維護等) – David

回答

8

如果我正確地理解了你,這可能有點延伸,當你按下切換按鈕(假設你知道你已經正確初始化它)時,你並不需要擔心當前狀態。你可以簡單地切換兩個光環。當然,你需要正確初始化它們,如果這樣做不切實際,你需要使用不同的解決方案。

// When toggle aura button is pressed, toggle both auras to switch. 
Camb.vkillaura = !Camb.vkillaura 
Camb.killaura = !Camb.killaura 

如果出於某種原因需要處理它充分(比如有後來添加更多的選項),你可以試試下面的辦法:

if (Camb.killaura) { 
    Camb.killaura = false; 
    Camb.vkillaura = true; 
} else if (Camb.vkillaura) { 
    Camb.vkillaura = false; 
    Camb.killaura = true; 
} 
+0

謝謝!我是這樣做的,當把一個布爾變成真的鑰匙,另一個變成假。 – Brad

+0

對於第二個答案+1 ...使它變得簡單:) –

1

如果一個人總是在和從而另一個是關閉的,你也可以用一個布爾標誌。

+0

或者,爲了擴展性和可讀性,還需要一個枚舉。 –

相關問題