Tastenabfragen: Flushkeys, KeyHit
Übersicht

![]() |
MisterMabooBetreff: Tastenabfragen: Flushkeys, KeyHit |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute.
irgendjemand hat mir mal den tipp gegeben, tastenabfragen am anfang der hauptschleife in eine variable zu speichern und dann immer wieder diese variable zu überprüfen (ich weiß nicht mehr genau womit das begründet wurde). bis jetzt hat mir das keine schwierigkeiten gemacht, klappte prima. bis jetzt! das problem dabei ist ganz einfach: ich benutze FlushKeys. wenn ich das jetzt aber am ende jeder schleife z.B. einmal mache, dann funktioniert die tastenabfrage mittels der variable nicht mehr richtig. ein beispiel zum verdeutlichen meines problems: Code: [AUSKLAPPEN] Repeat KH_W=KeyHit(17) If KH_W Then ... EndIf FlushKeys Forever so wars gemeint. mein code ist jetzt um ein vielfaches komplexer ( ![]() meine frage: tastenabfragen am anfang der schleife in variablen speichern oder nicht? wie genau entsteht das problem? |
||
Man is the information he carries |
- Zuletzt bearbeitet von MisterMaboo am Mo, Jun 28, 2010 16:39, insgesamt 2-mal bearbeitet
![]() |
relentless92 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Const W = 17
[...] If Keyhit(W) Then [...] Wieso nicht so? Wenn ich dich richtig verstanden habe ![]() |
||
~
Fussball spielen viele, Kart fahren nur die Besten. ~ |
![]() |
MisterMaboo |
![]() Antworten mit Zitat ![]() |
---|---|---|
weil ich meine zu erinnern dass mir der tippgeber erklärt hat, dass man im laufe einer schleife denselben scancode nur einmal überprüfen kann, oder etwas in der richtung.
ich möchte bloß wissen, ob das unsinn ist, das mit dem flushkeys hab ich gelöst, auch wenn ich nicht verstehe warum es jetzt klappt EDIT: für alle die diesen thread unter großen umständen mal finden sollten: das problem habe ich gelöst indem ich das flushkeys hinter die tastenabfragen gesetzt habe: Code: [AUSKLAPPEN] ... Repeat KD_W=KeyDown(17) KD_A=KeyDown(30) KD_D=KeyDown(32) KD_SHIFT=KeyDown(42) ... FlushKeys ... If KD_W Then... ... Flip Forever |
||
Man is the information he carries |
- Zuletzt bearbeitet von MisterMaboo am Mo, Jun 28, 2010 16:36, insgesamt einmal bearbeitet
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
@relentless: Weil genau das falsch ist, falls man eine Taste in einer Schleife mehrmals abfragen möchte (Begründung: Siehe unten).
@MisterMaboo: FlushKeys ![]() ![]() Der Grund, wieso man das mit der Variable so macht, ist folgender: KeyHit (und MouseHit) geben die Anzahl Tastenanschläge seit dem letzten Aufruf von KeyHit (oder MouseHit oder FlushKeys resp. FlushMouse) zurück. Benutzt man also die Funktion zweimal direkt hintereinander, so sieht in der Regel nur die erste Funktion noch Tastenanschläge, die nächsten sehen nix mehr. Es sei denn, man drückt im richtigen Moment. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Neoxit |
![]() Antworten mit Zitat ![]() |
---|---|---|
@MisterMaboo
Das liegt aber auch nur daran das du in deinem jetzigen Code KeyDown() nutzt und nicht wie zuvor beschrieben KeyHit() ![]() |
||
![]() |
MisterMaboo |
![]() Antworten mit Zitat ![]() |
---|---|---|
hat damit rein gar nichts zu tun. ich wollte nur nicht meine komplette tastenabfrage posten.
zum öffnen des inventars wird der tastendruck 'I' überprüft. |
||
Man is the information he carries |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group