Inkey() funktioniert nicht. OSX 10.11.2

Anfängerfragen zum Programmieren mit PureBasic.
esso4es
Beiträge: 4
Registriert: 18.12.2015 13:35

Inkey() funktioniert nicht. OSX 10.11.2

Beitrag von esso4es »

hi leute,

ich bin neu hier und verwende die sprache PureBASIC erst seit gut einer woche...

daher wollte ich zur einarbeitung mal ein kleines konsolen spiel schreiben.

jetzt hab ich nur das problem, dass mir die eingabe mit input() an manchen stellen einfach nicht so gut gefällt.

hab mich schon mit einigen versuchen rum geschlagen und auch den code zum thema inkey() aus dem referenzhandbuch getestet... es funktioniert einfach nicht.

die synthome sind, das das prg bei inkey() einfach stehen bleibt und egal wie wild ich auf die tasten hau... es passiert nix.

Code: Alles auswählen

Repeat
  key.s = Inkey()
Until key.s <> ""
diesen drei zeiler habe ich jetzt schon lange genug angefleht zu funktionieren...

hat von euch einer eine idee, wie ich dieses problem ungehen kann?

wie im titel zu lesen, ich verwende "el capitan" ...

schon mal danke im vorraus.

mfg
esso4es
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: Inkey() funktioniert nicht. OSX 10.11.2

Beitrag von alter Mann »

Inkey() wartet nicht auf eine Eingabe, Deine Schleife wird also sofort verlassen. Versuch es erst mal mit dem Beispiel aus der Hilfe zu Inkey().
Win11 64Bit / PB 6.0
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Inkey() funktioniert nicht. OSX 10.11.2

Beitrag von NicTheQuick »

Seine Schleife wird erst verlassen, wenn eine Taste gedrückt wird.

Code: Alles auswählen

OpenConsole()
	Repeat
		key.s = Inkey()
	Until key.s <> ""
	PrintN("Pressed key: " + key)
	s.s = Input()
CloseConsole()
Komischerweise wird das Konsolenfenster bei mir unter Linux direkt geschlossen, obwohl es eigentlich bei "Input()" stehen bleiben soll.
esso4es
Beiträge: 4
Registriert: 18.12.2015 13:35

Re: Inkey() funktioniert nicht. OSX 10.11.2

Beitrag von esso4es »

tja, scheinbar verhält sich pb doch nicht auf allen drei desktop os gleich...

mir is nämlich noch was weiteres aufgefallen. scheinbar kann ich nur mit den ersten acht farben des terminal arbeiten.
die oberen 8 farben sind nicht zu erreichen.

so bewirkt:

Code: Alles auswählen

ConsoleColor(7,0)
das selbe wie:

Code: Alles auswählen

ConsoleColor(15,0)
ich hab etwas mit den terminal farb einstellungen gespielt... ist halt leider echt so.

mkay, dass jetzt jedoch nur mal so am rande.

da inkey() nicht funktioniert hatte ich ne andere idee... bei der ich jedoch wegen mangelnder erfahrung hilfe bei der realisierung brauche.

kann mir einer von euch zeigen?

wie ich ein möglichst kleines (optional auch verstecktes)
OpenWindowedScreen() hin bekomme, welches dan mit KeyboardInkey() od. KeyboardReleased() od. KeyboardPushed() die tasten abfragt und das ergebniss dan in mein terminal prg überträgt...?

ich hoffe einer von euch, hatt da dir richtige formel für mich...

schon mal danke im vorraus.

mfg
esso4es
Antworten