在C 中的三个布尔变量之间切换

Toggle between three boolean variables in C++

本文关键字:布尔 三个 变量 之间      更新时间:2023-10-16

我正在使用C 在OpenGL中进行3个状态切换。因此,我想做的是启用Light0的Light1和Light2被禁用时。当启用Light1时,Light0和Light2被禁用等。我知道我可以在这样的两个变量之间轻松切换:

bool light_0 = true, light_1 = false;
if (key press) {
light_0 = !light_0;
light_1 = !light_1; 
}

,如果我将其用于三个变量,那么我最终将打开一个灯并关闭两个灯。

使用状态计算机。

您需要提出的枚举:

enum Light{
    LIGHT_0, LIGHT_1, LIGHT_2
}

创建一个光的实例以跟踪状态。

 Light lightState = new Light();

每当您使用灯时,都可以切换到当前状态:

useLight(){
    switch(lightState){
        case LIGHT_0:
            //do whatever you want
            break;
        case LIGHT_1:
            //do whatever you want
            break;
        // and so on, customized for your need
    }
}

每当您想更换光线时,只需刺激所需的光态到LightState。

if(keyPress){
    lightState = LIGHT_1;
}

我希望现在可以理解。(这不是正确的C 语法)