Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probleme mehrere Tasten gleichzeitig auszulesen (https://www.delphipraxis.net/94863-probleme-mehrere-tasten-gleichzeitig-auszulesen.html)

Falke01 27. Jun 2007 11:17


Probleme mehrere Tasten gleichzeitig auszulesen
 
Hallo, wir haben folgendes Problem:

Wir haben als Projektarbeit ein kleines Raumschiff-Game in Delphi 7 (WinXP) geschrieben.
Da auch mehrere Spieler an einer Tastatur spielen werden eine ganze menge Tasten gedrückt.
Um festzustellen, welche Tasten gerade gedrückt sind, lesen wir jeden Berechnungsschritt mit GetAsyncKeyState den Status der einzelnen Tasten aus.
Nun gibt es das problem, dass bei ca. 5-10 gleichzeitig gedrückten Tasten nicht mehr alle registriert werden und man deshalb nicht mehr steuern kann.

Kann man dieses Problem irgendwie beheben?

Vielen Dank im Voraus:

Falke01

Robert Marquardt 27. Jun 2007 11:34

Re: Probleme mehrere Tasten gleichzeitig auszulesen
 
Mehr als 5 Tasten gleichzeitig geht nur sehr selten. Das ist eine Hardwarelimitation der Tastatur. Bei USB-Tastaturen ist 6 Tasten plus Modifier ein sicheres Limit. Das Stichwort dazu ist n-key rollover. Es gibt Tastaturen die schon bei 3 Tasten schlapp machen.

kolbaschedder 27. Jun 2007 11:35

Re: Probleme mehrere Tasten gleichzeitig auszulesen
 
Meiner Meinung nach nicht, da die Tastatur über Matrixleitungen ausgelesen werden. Ab einer bestimmten Anzahl gedrückter Tasten, lässt sich reint echnisch nicht mehr unterscheiden, welche Tasten nun wirklich gedrückt wurden.

MfG

Kolbi

Falke01 27. Jun 2007 16:02

Re: Probleme mehrere Tasten gleichzeitig auszulesen
 
Vielen Dank für eure Antworten.

Also gibt es im Prinzip nichts, dass dieses Problem behebt...

Wie funktioniert das dann eigentlich bei anderen Spielen wie bomberman etc.?

Reinhard Kern 27. Jun 2007 18:28

Re: Probleme mehrere Tasten gleichzeitig auszulesen
 
Zitat:

Zitat von kolbaschedder
Meiner Meinung nach nicht, da die Tastatur über Matrixleitungen ausgelesen werden. Ab einer bestimmten Anzahl gedrückter Tasten, lässt sich reint echnisch nicht mehr unterscheiden, welche Tasten nun wirklich gedrückt wurden.

MfG

Kolbi

Hallo,

rein technisch geht das schon, die Frage ist nur, ob es der Entwickler der Tastatur für unbedingt notwendig hält. Ich könnte durchaus eine Tastatur bauen, die 128 Make-Codes sendet, wenn du alle Tasten nach und nach drückst, und die entsprechenden Break-Codes, wenn du sie loslässt, aber als Einzelstück würde sie einige tausend Euro kosten.

Zur Technik: eine entkoppelte Matrix lässt jede beliebige Taste erkennen; ist sie nicht entkoppelt, gehen schon 2 in einer Reihe nicht. Und ausserdem kann man durchaus 128 Controller-Eingänge aufbieten, wenn es sein muss.

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz