我一直在制作一个注册了dll的菜单,用于调用现代战争3。当我在菜单中添加选项时,我想创建一个允许我交换bool值的空格。
我试过了:
void swapBool(bool& xbool)
{
if (xbool)
!xbool;
else if (!xbool)
xbool;
}
但是,它不起作用。 这就是我希望它实现的目标:
if (displayInfoBox)
displayInfoBox = false;
else if (!displayInfoBox)
displayInfoBox = true;
因为有很多bools和更多来了我想创造一个空洞...
if (offHostScroll == 0)
{
if (rgbEffects)
rgbEffects = false;
else if (!rgbEffects)
rgbEffects = true;
}
else if (offHostScroll == 1)
{
if (rgbMenu)
rgbMenu = false;
else if (!rgbMenu)
rgbMenu = true;
}
else if (offHostScroll == 2)
{
if (rgbBakcground)
rgbBakcground = false;
else if (!rgbBakcground)
rgbBakcground = true;
}
else if (offHostScroll == 3)
{
if (rgbMaps)
rgbMaps = false;
else if (!rgbMaps)
rgbMaps = true;
}
else if (offHostScroll == 4)
{
if (rgbInGameIcons)
rgbInGameIcons = false;
else if (!rgbInGameIcons)
rgbInGameIcons = true;
}
else if (offHostScroll == 5)
{
swapBool(displayInfoBox);
/*if (displayInfoBox)
displayInfoBox = false;
else if (!displayInfoBox)
displayInfoBox = true;*/
}
答案 0 :(得分:2)
简单地:
displayInfoBox = !displayInfoBox;
或
xbool = !xbool;
!
本身不会改变变量的值,它只是通过否定它来创建一个新值,所以你必须重新分配它。
您还必须通过引用swapBool
通过xbool
。
void swapBool(bool& xbool);