Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

02.02.2007, 16:30

console tastatureingabe abfangen

tagchen .. :)

weiß vielleicht jemand wie ich es schaffe, dass das consolenfenster sofort auf eine eingabe reagiert, ohne dass ich auf 'enter' drücken muss.. ?

also als beispiel ein menü..

Quellcode

1
2
3
(x) Start
( ) Optionen
( ) Beenden


und wenn ich auf pfeil nach unten drücke.. soll das x nach unten gehn

Quellcode

1
2
3
( ) Start
(x) Optionen
( ) Beenden


also das mit dem anzeigen is kein problem.. nur dass die console auch sofort reagiert schaffe ich nicht.. ^^
kann mir da evtl. jem. helfen? :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

flux

Treue Seele

  • Private Nachricht senden

2

02.02.2007, 17:38

Du kannst z.b. in einer Schleife die taste immer abfragen. Also ob gedrückt oder nicht. Das geht z.b. mit
GetAsyncKeyState

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

02.02.2007, 19:55

oho danke ! funzt :)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

02.02.2007, 20:12

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
while (! (GetAsyncKeyState(VK_RETURN)&0x8000))
{
  if (GetAsyncKeyState(VK_UP)&0x8000)
  {
    // Pfeil hoch

  }
  //... weitere Eingaben

  Sleep(100); // sonst geht der Pfeil bisschen unregelmäßig und schnell^^

}
// Auswerten, wo das x bei Drücken von Return stand


// hmm... grad stand noch irgendwas von wegen Beispiel da^^

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

02.02.2007, 20:48

joa.. zuerst wusste ich nicht wie... aber dann kam ich selber dahinter ^^

aber... du könntest mir das mit Sleep(); erklären wenn es dir nichts ausmacht :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

flux

Treue Seele

  • Private Nachricht senden

6

02.02.2007, 21:00

Das Sleep() wird verwendet, damit das Menü nicht zu schnell durchlaufen wird.
Beispiel: Ein Schleifendurchlauf dauert 10 mSec. Du drückst eine Taste für 50 mSec. Dann wird die Schleife 5 mal durchlaufen und somit das x im Menü um 5 Positionen verschoben. mit dem Sleep() wird der Schleifendurchlauf verlangsamt.

Ich würde das aber noch anders machen. Man kann auch den alten Zustand der Taste zwischenspeichern. Und dann gucken, ob die Taste vorher gedrückt war. Wenn sie vorher schon gedrückt war lässt man das Menü so wie es ist, ansonsten wird das Menü x um 1 verschoben. So verliert man nicht die Zeit bei dem Sleep().

Weiss nicht, ob das bei der Konsole so viel bringt, war nur ein Vorschlag.

7

02.02.2007, 21:01

Zitat von »"$nooc"«

joa.. zuerst wusste ich nicht wie... aber dann kam ich selber dahinter ^^

aber... du könntest mir das mit Sleep(); erklären wenn es dir nichts ausmacht :D

Da gibts nicht viel zu erklären. Sleep bringt den aktuellen Prozess/Thread dazu anzuhalten und zu warten. Solange dies geschieht wird praktischerweise auch keine CPU-Zeit beansprucht.

Der übergebene Wert entspricht der zu wartendenden Zeit in Millisekunden.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

8

03.02.2007, 18:47

danke leute :)
ihr seid die besten :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Werbeanzeige