Keyhits abfangen

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

gamble

Betreff: Keyhits abfangen

BeitragFr, Jul 15, 2005 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ist es möglich mit BlitzMax die Tasten "abzufangen", die zum Beispiel in einem Spiel gedrückt wurden ? Ich will so eine Art Musik-Player machen, den man bequem InGame aufrufen etc kann. Geht das mit BlitzMax oder nur mit der WinApi (oder garnicht ?).

Danke

- gamble

Markus2

BeitragSa, Jul 16, 2005 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich würde sagen das geht nur über API weil dein Blitz Fenster
ja kein Focus hat wenn du was anderes spielst .

VB6:
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer


Vieleicht kann du auch nen extra Joystick dafür benutzen .
 

gamble

BeitragSa, Jul 16, 2005 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Das habe ich irgendwie erwartet... hm.

Jolinah

BeitragSa, Jul 16, 2005 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit der oben genannten Funktion würde es doch gehen:

Code: [AUSKLAPPEN]

Extern "win32"
Function GetAsyncKeyState:Short(vKey:Int)
End Extern

Print GetAsyncKeyState(5)
 

gamble

BeitragSa, Jul 16, 2005 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Entweder es geht nicht, oder ich habe in der Verwendung was falsch verstanden:

Code: [AUSKLAPPEN]
Extern "win32"
Function GetAsyncKeyState:Short(vKey:Int)
End Extern

Graphics 800,600,0

Local status:Short = 0

Repeat

   Cls
   
   status = GetAsyncKeyState(41)

   DrawText 0,0,status
   
   Flip

Until KeyHit(KEY_ESCAPE)


Ich kann auf A hämmern wie ich will, da tut sich nichts.

Markus2

BeitragSa, Jul 16, 2005 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht mit A Smile

Code: [AUSKLAPPEN]

Extern "win32"
Function GetAsyncKeyState:Short(vKey:Int)
End Extern

Graphics 800,600,0

Local status:Short = 0

Repeat

   Cls
   
   status = GetAsyncKeyState(65)

   If status Then
    Text 0,0,"Jo"
   Else
    Text 0,0,"Nix"
   EndIf
   
   Flip

Until KeyHit(KEY_ESCAPE)

 

gamble

BeitragSa, Jul 16, 2005 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool, geht sogar ohne Fokus. Danke! Wink
 

gamble

BeitragSo, Jul 17, 2005 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

funktioniert soweit prima. Nur: Gibt es ASII Codes für den Numblock ?
 

Dreamora

BeitragMo, Jul 18, 2005 0:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Zahl ist Zahl. Woher die Zahl kommt ist unbedeutend.

Wenn du da unterscheiden willst, müsstest du eine andere API Funktion nehmen, die auf den Tastatur Scancodes basiert (also den Tasten selbst, nicht den Zeichen darauf) anstelle der Ascii
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jolinah

BeitragMo, Jul 18, 2005 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei Msdn steht das alle VKeys funktionieren.

http://msdn.microsoft.com/libr...ystate.asp

Zitat:

VK_NUMPAD0 (60)
Numeric keypad 0 key
VK_NUMPAD1 (61)
Numeric keypad 1 key
VK_NUMPAD2 (62)
Numeric keypad 2 key
VK_NUMPAD3 (63)
Numeric keypad 3 key
VK_NUMPAD4 (64)
Numeric keypad 4 key
VK_NUMPAD5 (65)
Numeric keypad 5 key
VK_NUMPAD6 (66)
Numeric keypad 6 key
VK_NUMPAD7 (67)
Numeric keypad 7 key
VK_NUMPAD8 (68)
Numeric keypad 8 key
VK_NUMPAD9 (69)
Numeric keypad 9 key
VK_MULTIPLY (6A)
Multiply key
VK_ADD (6B)
Add key
VK_SEPARATOR (6C)
Separator key
VK_SUBTRACT (6D)
Subtract key
VK_DECIMAL (6E)
Decimal key
VK_DIVIDE (6F)
Divide key


Sind Hexwerte, also in Bmax:
Code: [AUSKLAPPEN]
GetAsyncKeyState($65)

Für Numpad 5 zum Beispiel
 

Dreamora

BeitragMo, Jul 18, 2005 1:25
Antworten mit Zitat
Benutzer-Profile anzeigen
also doch nix mit Ascii, dann habe ich nix gesagt, sorry

PS: Gibt auch ne Funktion die dir sonst den VKey einer Taste ausgibt (oben den Link nehmen und dort die VKey funktion nehmen. müsste halt auch noch im extern eingefügt werden, aber sollte glaub kein allzugrosses problem sein Smile)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

gamble

BeitragMo, Jul 18, 2005 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, funktioniert wunderbar Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group