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

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

Я делаю модифицированный клиент для игры под названием Minecraft. Существует два типа ауры убийства, один из которых работает на некоторых серверах, а другой - на других. Допустим, у меня есть VKillaura, и вместо этого я хочу использовать KillAura, я нажму кнопку, и они переключатся. Это работает. Однако, если я использую KillAura, и я хочу переключиться на VKillAura, это не позволит мне. Я думаю, что это потому, что Eclipse читает сверху вниз, а мой VKillaura if - ниже моей ауры. Как это исправить?Если это возможно, но это не так, но это не так.

+1

@David. См. Ясно, что он не устанавливает одну и ту же переменную в false в условных выражениях if. –

+4

Этот заголовок невероятно запутанный. – Thor84no

+0

@RohitJain: Ах, ты прав. Более значимые имена переменных сделают это * много * более очевидным. (И, вероятно, сделать логическую логику намного проще для реализации/debug/maintenance/etc.) – 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

Спасибо! Я сделал это, когда ключ превратил одно из логических значений в true, а другой - в false. – Brad

+0

+1 для второго ответа ... сделал это просто :) –

1

Если один всегда на и таким образом, другой выключен, вы также можете использовать один булевский флаг.

+0

Или, для расширяемости и удобочитаемости, перечисление. –

Смежные вопросы