如何使布尔变量仅在设置为 true 时才为真?
How to make bool variable only true if its being set to true?
我有
namespace global {
bool global::Aimbot; // this must be set to false until something else doesnt set this to true
}
在我的函数中我正在做
inline void set_view_angles()
{
global::Aimbot = true;
// so everytime this func is called it set global::Aimbot to true
}
我调试了global::Aimbot bool
,但有一个问题。 如果我调用函数set_view_angles()
,global::Aimbot
从false
变为true
,并且它true
每一帧... 我希望global::Aimbot
只有在调用set_view_angles()
时才是正确的。
由于这个问题有多种解释,首先让我总结一下我从描述和评论中理解的问题:OP 希望将变量global::Aimbot
设置为按下某个键时true
,并在释放所述键时将其设置为false
。
答:当调用函数set_view_angles()
时,它会将全局变量的状态global::Aimbot
更改为true
,并且它将保持true
状态,直到某些东西将其更改回false
,因此您可能需要一个新函数来完成这项工作。像这样:
inline void unset_view_angles()
{
global::Aimbot = false;
}
C++本身不提供知道是否按下键的方法,但您必须依靠一些外部库来实现这一点。在轮询或等待键盘事件的代码中,必须检查键的状态,并相应地调用unset_view_angles()
或set_view_angles()
。例如,如果键是"Q",并且您正在使用 SDL 库轮询键盘事件,则可以执行以下操作:
SDL_Event event;
while (SDL_PollEvent(&event)) {
if(event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_q)
set_view_angles();
else if(event.type == SDL_KEYUP && event.key.keysym.sym == SDLK_q)
unset_view_angles();
}
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 无论条件是否为true,if总是在c++中执行
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何使布尔变量仅在设置为 true 时才为真?
- 对于完成布尔值设置为 true 后未停止的循环
- C++ if 语句将条件设置为 true 和循环中的 OR-ing 条件之间的行为差异
- Live555MediaServer 在每个新连接时重新启动流。为什么将"reuseSource"设置为 true 无法按预期工作?
- 如何将Bools中的一个元素设置为true
- 将 initialOwner 设置为 TRUE 的 CreateMutex 使创建者进程保持互斥锁,直到完成
- 尝试在C 程序中设置简单的键盘输入.使用变量存储True或false
- Cocose2d-x ParticleSystemQuad扩展在设置AutoRemoveOnFinish(true)时从
- VS2012 "Project is incompatible"从设置为 "Windows Store App Support" 到 true 的消息
- 尽管返回 true 但 SymInitialize 将 GetLastError 设置为 2,这意味着这一切