Zwei Tasten gleichzeitig abfragen, wie geht das?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Zwei Tasten gleichzeitig abfragen, wie geht das?

Beitrag von HeX0R »

OlderCoder hat geschrieben: 06.07.2021 18:23 Leider muss man bei Dir darauf achten, dass man bei zwei Tasten diese nicht in einem zu großen zeitlichen Abstand loslässt, sonst wird die zuletzt losgelassene Taste nochmal als Eingabe gewertet. Das mag mit etwas Vorsicht vielleicht fast nie passieren. (Mir ist es allerdings beim Testen ein paar Mal passiert, ohne dass ich es darauf angelegt hatte.)
Das ist auch kein großes Problem, siehe geänderten Code oben

Du solltest den GetAsyncKeyState_() Ansatz eh überdenken, keine Ahnung, wieso das überhaupt in den Raum geworfen wurde.
Da Du ein Spiel machen willst, wirst Du eh einen Screen oder ein CanvasGadget brauchen.
Dafür gibt's dann aber eben PB-Eigene Befehle und keine Befehle, die für Fensteranwendungen gedacht sind.
OlderCoder
Beiträge: 109
Registriert: 18.03.2013 12:30
Wohnort: Bayerland
Kontaktdaten:

Re: Zwei Tasten gleichzeitig abfragen, wie geht das?

Beitrag von OlderCoder »

Ich habe GetAsyncKeyState selbst verwendet, andere aber auch, und ich hatte MenuEvent versucht, was aber gescheitert ist, weil die immer wieder abgelegten Events in der Schlange das zuverlässige Abfragen, wie ich es brauche, gestört haben.
Und mit GetAsyncKey funktioniert es, und das zählt.
Ich kenne noch KeyboardPushed und Keyboard-Released, aber auch damit hatte ich es nicht gebacken bekommen.
(Edit: Ich sehe aber gerade, dass Du bei Dir genau diese Befehle verwendest - und es nach Deinen Änderungen jetzt auch genau wie mein eigenes Programm funktioniert. Ich schau mir das mal an, da lerne ich sicher wieder etwas.)
Und andere Befehle kenne ich nicht.

Ich sehe jetzt - mit meiner mangelnden Erfahrung - zunächst auch keine Notwendigkeit, das ganze nicht einfach direkt in das Fenster zu zeichnen.
ich hab für mich die Erfahrung gemacht, je einfacher das Programm, desto leichter die Fehlersuche, und desto schneller komm ich ans Ziel.
Deshalb mach ich das so.
(Edit: Allerdings wird der Einsatz von Sprites wohl langfristig deshalb Sinn machen, weil ein Spiel mit schönen Grafiken mehr Spaß macht und sich solche Bildchen komfortabler herumschieben lassen, als wenn man das nur mit Images macht. Aber da habe ich keine Erfahrung.)
Meine aktuellen Probleme sind auch nicht durch die Wahl meiner Mittel entstanden, sondern ich suche noch nach einem Weg, dass sich die Roboter-Gegner fehlerfrei verhalten. Alles andere ist die Grafikdarstellung, und da geht es bei mir sehr einfach zu, da hab ich bisher keine wirklichen Probleme.
Aber ich mach jetzt eh erst mal eine Pause, da ich nicht weiterkomme und ich eh wegen Schulterproblemen momentan nicht so viel am Rechner sein kann.
Antworten