gpt4 book ai didi

c++ - 在 C++ 中的三个 bool 变量之间切换

转载 作者:行者123 更新时间:2023-11-28 05:23:34 25 4
gpt4 key购买 nike

我打算使用 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 实例来跟踪状态。

 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++ 语法)

关于c++ - 在 C++ 中的三个 bool 变量之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com