我正在尝试使用_getch获取键盘笔划以增加游戏中的金钱。如果我希望这些钱能够更快地增加,那么在10年代的时候,在保持向下移动并保持100的控制权的情况下,最好的方法是什么呢?如果我只是检查班次,这很容易,但如果我想检查一个班次,那么之后的控制将无效。
例如检查增加1或10我会做这样的事情
key = _getch();
if (key == 224)
{
key = _getch();
if (key == 75) // left arrow
{
if (GetAsyncKeyState(VK_SHIFT)
for (int i = 0; i < 10; i++) // go left 10 times
left();
else
left();
}
}
如果我添加了一个if,如果控制为100,它将无法正常工作。很可能因为再次运行GetAsyncKeyState函数使其无法正确读取键状态。
else if (GetAsyncKeyState(VK_CONTROL)
for (int i = 0; i < 100; i++) // go left 100 times
left();
任何可能的解决方法?谢谢!
答案 0 :(得分:0)
“if(GetAsyncKeyState(VK_SHIFT)&amp;&amp; GetAsyncKeyState(VK_CONTROL))”怎么样?您无法使用一个GAKS呼叫来检查多个密钥。
答案 1 :(得分:0)
尝试以下代码以确保您可以一起使用多个密钥。硬件限制同时按下多个按键,因此请记住这一点。
主要呼叫功能,
const test: Foo = {
[myProp] = myProp
}
功能keydown,
while(!keydown(VK_LCONTROL))
{
if(keydown(VK_LCONTROL) && keydown(VK_NUMPAD1) && keydown(VK_UP))
{
cout << "combo pressed!" << endl;
}
Sleep(10);
}
(GetAsyncKeyState(key)&amp; 0x8000)!= 0;我们只对第15位感兴趣所以请检查一下。有关详细信息,请查看相应位的信息。
尝试组合键,如control + numberpad1 + Up为1的增量,control + numberpad2 + Up为10的增量等。
答案 2 :(得分:0)
关闭控件可防止控制台“刷新”。所以,这只是控制本身导致错误的一个问题,我决定使用for-shift持有10年代而while-tab持有100年代。如果有一种方法可以使用alt,我认为没有,我会使用它。这只是我愚蠢的一个典型案例,需要花费3个小时才能发现密钥绑定与cmd提示符相互作用导致问题。