Ich bin äußerst verwirrt über die schiere Menge an, wie viele verschiedene Antworten es auf Getasynckeystate () gibt, ich weiß, was es tut, aber der verwirrende Teil ist, dass es der Rückkehrwert ist. Ich habe viele verschiedene Beispiele dafür gesehen, wie die Leute dies verwenden, aber die beiden Haupt zwei sind Folgendes:
Erstens:
Code: Select all
if (GetAsyncKeyState(KEY) == -32767)
Sekunde:
Code: Select all
if (GetAsyncKeyState(KEY) & 0x8000)
Das erste verwirrende Bit ist, dass bei der Verwendung des Windows -Taschenrechners und der Konvertierung von -32767 in ein Hexadezimal 0x8001 entspricht, sodass sie nicht dasselbe vergleichen. Soweit mir bekannt ist (und bitte korrigieren Sie mich, wenn ich falsch verstanden habe), prüft 0x8000 , dass der Schlüssel derzeit gedrückt wird, aber 0x8001 tut gleichzeitig das gleiche, während gleichzeitig mitgeteilt wurde, dass es nach dem letzten Mal gedrückt wurde, dass GetAsynckeystate (). Im Wesentlichen das Gleiche tun, aber gleichzeitig unterschiedliche Ergebnisse erzielen ... < /p>
Code: Select all
#include
#include
int main() {
while (true) {
for (int KEY = 8; KEY