2013-07-28 114 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

或者,为了扩展性和可读性,还需要一个枚举。 –

相关问题