Seite 1 von 3

Begrenzte Zeit für Eingabe

Verfasst: So Jul 20, 2008 8:49 pm
von nufan
Hallo!
Muss mal die Anzahl der Beiträge im Forum erhöhen ;)
Ich wollte gerade ein kleines Spiel schreiben, bei dem man eine Linie steuert, damit sie nicht an den Rand eines Bereiches kommt (sprich SNAKE :D ). Nur hab ich ein Problem mit der Eingabe.
Man soll in einer bestimmten Zeitspanne (z.B, 1 Sekunde) eine (Pfeil-)Taste drücken. Danach bewegt sich die Schlange weiter. Zuerst hab ich es mit sleep () versucht, aber da kann man nur eine Zahl für die Zeit, jedoch keine Funktion übergeben.
Gibt es eine andere Funktion, mit der man dieses Problem lösen kann?

Re: Begrenzte Zeit für Eingabe

Verfasst: So Jul 20, 2008 9:20 pm
von Xin
Welche GUI verwendest Du?

Re: Begrenzte Zeit für Eingabe

Verfasst: So Jul 20, 2008 10:27 pm
von Dirty Oerti
Ich würde dir dazu raten, das Ganze mit SDL zu machen.
Dort kannst du auf Tastendrücke warten und hast auch zusätzlich einen Timer.
Wenn du die beiden Funktionen gut kombinierst, dann hast du deine Lösung.

SDL heißt im Übrigen nicht, dass du auch die Grafikausgabe über SDL laufen lassen musst.

MfG
Daniel

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 12:37 pm
von nufan
Xin hat geschrieben:Welche GUI verwendest Du?
Keines, nur die Borland IDE.
Dirty Oerti hat geschrieben:Ich würde dir dazu raten, das Ganze mit SDL zu machen.
Ich wollte es eigentlich nur mit einfachen Befehlen schreiben. Es soll ja nichts grafisch aufwändiges werden. Nur ein paar ASCII-Zeichen.

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 12:56 pm
von Dirty Oerti
dani93 hat geschrieben:
Dirty Oerti hat geschrieben:Ich würde dir dazu raten, das Ganze mit SDL zu machen.
Ich wollte es eigentlich nur mit einfachen Befehlen schreiben. Es soll ja nichts grafisch aufwändiges werden. Nur ein paar ASCII-Zeichen.
SDL heißt ja auch nicht, dass du SDL zur Grafikausgabe verwenden musst.
Du kannst trotzdem per ASCII-Zeichen ausgeben.
Du kannst Teilsysteme (Timer, Keyboard) verwenden. :)

MfG
Daniel

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 4:44 pm
von fat-lobyte
dani93 hat geschrieben:
Xin hat geschrieben:Welche GUI verwendest Du?
Keines, nur die Borland IDE.
Dirty Oerti hat geschrieben:Ich würde dir dazu raten, das Ganze mit SDL zu machen.
Ich wollte es eigentlich nur mit einfachen Befehlen schreiben. Es soll ja nichts grafisch aufwändiges werden. Nur ein paar ASCII-Zeichen.
Sorry, aber das wird leider nichts.
Die C- Bibliothek hat keine funktionen, mit der man Pfeiltasten einlesen Könnte und auch keine, mit der man ein Timeout von Tastaturabfragen implementieren könnte.
Es gibt wie gesagt nur den Weg über externe Bibliotheken, aber da werden dir die anderen bestimmt weiterhelfen können.

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 4:53 pm
von nufan
Die C- Bibliothek hat keine funktionen, mit der man Pfeiltasten einlesen Könnte und auch keine, mit der man ein Timeout von Tastaturabfragen implementieren könnte.
Nene, ne eigene Funktion nicht. Ich hab schon ein kleines Tic-Tac-Toe geschrieben, wo man mit Pfeiltasten das Feld auswählen kann. Pfeiltasten haben den ASCII 0. Nach der Eingabe muss man sie aus dem Speicher holen und kann den Keycode prüfen (rauf 72, runter 80, links 75, rechts 77). Das sieht dann so aus:

Code: Alles auswählen

richtung=getch ();

if (richtung==0)
  richtung=getch ();

if (richtung==72)
  printf ("rauf");

else if (richtung==80)
  printf ("runter");

else if (richtung==75)
  printf ("links");

if (richtung==77)
  printf ("rechts");
Sorry, wenn ich jetzt kompletten Blödsinn geschrieben habe, aber es funktioniert.

Wens interessiert, hier der Code für das Spiel:
Tic-Tac-Toe
Achtung Windows only! :( Außer es macht sich jemand die Mühe alle getch () und clrscr () zu entfernen.

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 4:54 pm
von Dirty Oerti
Aha :)


Trotzdem: Wie schon mehrfach gesagt kannst du mit der SDL mehr als nur Grafik anzeigen.
Es gibt bestimmt bessere/kleinere/schnellere Bibliotheken für dein Problem.
Aber mit der SDL geht's auf jedenfall und damit sollte es auch kein allzugroßes Ding werden, dass zu realisieren.

Aber wenn du das anders auch hinbekommst... :)

:)

MfG
Daniel

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 4:57 pm
von fat-lobyte
dani93 hat geschrieben: Achtung Windows only! :( Außer es macht sich jemand die Mühe alle getch () und clrscr () zu entfernen.
*lol*, ich denke dann würde das Spiel nicht funktionieren :-)
getch() gibts nur unter Windhose.
Also so wies aussieht hat dein Avatar aber nichts mit Plattformübergreifender Programmierung zu tun, oder?

Für die nachwelt noch dein Avatar:

Re: Begrenzte Zeit für Eingabe

Verfasst: Mo Jul 21, 2008 4:58 pm
von nufan
Dirty Oerti hat geschrieben: Aber wenn du das anders auch hinbekommst... :)
Das löst das Problem mit den Tasten, aber nicht mit dem Zeitlimit. Welche Dateien muss ich jetzt herunterladen, und wo genau entpacken/installieren?