私は_getchを使用して、ゲームで金額を増やすためのキーボードストロークを取得しようとしています。もし私がお金をより速く増やしたいのであれば、シフトは押し下げられ、100のコントロールは押されている間に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();
}
}
ような何かをしたいです。ほとんどの場合、GetAsyncKeyState関数を再度実行するとキー状態が正しく読み取られない可能性があります。
else if (GetAsyncKeyState(VK_CONTROL)
for (int i = 0; i < 100; i++) // go left 100 times
left();
可能な回避策はありますか?ありがとう!
完全なユースケースを教えてください。ここでプログラマーがGetAsyncKeyState()を使用するよりも良い方法でお手伝いします。 –
人は私が行っていることを誤解しているようです。私はプログラムが変更を加えずに1ずつカウンターを増分し、シフトが保持されている場合は10を、コントロールが保持されている場合は100だけ増分します。キーボードでは、if、else ifを実行し、shift、control、およびどちらもチェックしないでください。それは理にかなっていますか? – Alex