Hi, ich möchte die Tasten 1, 2 und 3 vom Ziffernblock zur Steuerung verwenden. Laut Keycodes.exe sind das die Codes 79, 80 und 81. Wenn ich sie mit KEY(79), KEY(80) oder KEY(81) abfrage, passiert nichts. Andere Tasten funktionieren. Weiß jemand Rat?
Danke im Voraus.
Häää!?
Die müssen gehn...
Wie sieht denn der Code dazu aus?
Also ich hab ne Funktion, in der ich die Eingabe verarbeite:
SUB KeyboardHandling:
IF KEY(1) = 1
GameIsRunning = FALSE
ENDIF
IF KEY(17) = 1 OR KEY(79) = 1 // W oder Numpad1
Message$ = "Weiter!"
ENDIF
IF KEY(32) = 1 OR KEY(80) = 1 // D oder NumPad2
Message$ = "Double!"
ENDIF
IF KEY(18) = 1 OR KEY(81) = 1 // E oder NumPad3
Message$ = "Ende"
ENDIF
ENDSUB // KEYBOARDHANDLING
In der Hauptschleife rufe ich diese Funktion auf und Message$ wird dann angezeigt.
IF KEY(17) = 1 or KEY(44) = 1 ... funktioniert z. B., nur die Zahlen vom Ziffernblock nicht.
Habe Version 2.51103 laut Editor.
OK. Bei mir geht's. Mach mal bitte ein InternetUpdate (Menü: Web/Internet Update).
Wenn das Keycode-Programm geht, dann kapier ich's nicht, weil das der gleiche Code ist...
Hi, Internet-Update sagt, die Version ist aktuell. Ich hab nen Laptop mit USB Tastatur und einen normalen PC. Es geht bei beiden nicht. Hier mein Beispiel:
GLOBAL Message$ = ""
GLOBAL GameIsRunning = TRUE
// Start
GOSUB LoadMedia
// ---------------------------------- //
// Main Loop
// ---------------------------------- //
WHILE GameIsRunning = TRUE
GOSUB KeyboardHandling
IF Message$ <> ""
PRINT Message$, 200, 200
ENDIF
SHOWSCREEN
KEYWAIT
WEND
// Programmende
END
// #####################################
// Funktionen
// #####################################
// ------------------------------------------------------------- //
// -=# LOADMEDIA #=-
// ------------------------------------------------------------- //
SUB LoadMedia:
LOADBMP "bmphintergrund800600.bmp"
ENDSUB // LOADMEDIA
// ------------------------------------------------------------- //
// -=# KEYBOARDHANDLING #=-
// ------------------------------------------------------------- //
SUB KeyboardHandling:
IF KEY(1) = 1 // Escape
GameIsRunning = FALSE
ENDIF
IF KEY(17) = 1 OR KEY(79) = 1 // W oder Numpad1
Message$ = "Numpad1!"
ENDIF
IF KEY(32) = 1 OR KEY(80) = 1 // D oder NumPad2
Message$ = "Numpad2!"
ENDIF
IF KEY(18) = 1 OR KEY(81) = 1 // E oder NumPad3
Message$ = "Numpad3"
ENDIF
ENDSUB // KEYBOARDHANDLING
Noch etwas: an der Stelle, wo Message$ gedruckt wird, hängt die Sanduhr fest. Kann ich den Mauszeiger irgendwie ausblenden, sowas wie HideMouse ?
Hi
KEYWAIT weglassen.
Die Tastaturabfrage wird ja in jedem Schleifendurchgang
mit GOSUB KeyboardHandling aufgerufen.
Und das END nach der Schleife kannst du dir auch sparen.
Wenn du das Programm beenden möchtest kannst du in der
Schleife z.B. das schreiben.
IF KEY(57) THEN END
Das beendet dein Programm mit der Leertaste
Probier's nochmal ob's geht
Cheers
Hi, danke. Wenn ich KEYWAIT weglasse, funktionieren auch die Tasten vom Ziffernblock.
Danke nochmal.