Begrenzte Zeit für Eingabe
Begrenzte Zeit für Eingabe
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 ). 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?
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 ). 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?
- Xin
- nur zu Besuch hier
- Beiträge: 8861
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Begrenzte Zeit für Eingabe
Welche GUI verwendest Du?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Begrenzte Zeit für Eingabe
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
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
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Re: Begrenzte Zeit für Eingabe
Keines, nur die Borland IDE.Xin hat geschrieben:Welche GUI verwendest Du?
Ich wollte es eigentlich nur mit einfachen Befehlen schreiben. Es soll ja nichts grafisch aufwändiges werden. Nur ein paar ASCII-Zeichen.Dirty Oerti hat geschrieben:Ich würde dir dazu raten, das Ganze mit SDL zu machen.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Begrenzte Zeit für Eingabe
SDL heißt ja auch nicht, dass du SDL zur Grafikausgabe verwenden musst.dani93 hat geschrieben:Ich wollte es eigentlich nur mit einfachen Befehlen schreiben. Es soll ja nichts grafisch aufwändiges werden. Nur ein paar ASCII-Zeichen.Dirty Oerti hat geschrieben:Ich würde dir dazu raten, das Ganze mit SDL zu machen.
Du kannst trotzdem per ASCII-Zeichen ausgeben.
Du kannst Teilsysteme (Timer, Keyboard) verwenden.
MfG
Daniel
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Begrenzte Zeit für Eingabe
Sorry, aber das wird leider nichts.dani93 hat geschrieben:Keines, nur die Borland IDE.Xin hat geschrieben:Welche GUI verwendest Du?Ich wollte es eigentlich nur mit einfachen Befehlen schreiben. Es soll ja nichts grafisch aufwändiges werden. Nur ein paar ASCII-Zeichen.Dirty Oerti hat geschrieben:Ich würde dir dazu raten, das Ganze mit SDL zu machen.
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.
Haters gonna hate, potatoes gonna potate.
Re: Begrenzte Zeit für Eingabe
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: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.
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");
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.
Zuletzt geändert von nufan am Mo Jul 21, 2008 4:56 pm, insgesamt 1-mal geändert.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Begrenzte Zeit für Eingabe
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
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
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: Begrenzte Zeit für Eingabe
*lol*, ich denke dann würde das Spiel nicht funktionierendani93 hat geschrieben: Achtung Windows only! Außer es macht sich jemand die Mühe alle getch () und clrscr () zu entfernen.
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:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Haters gonna hate, potatoes gonna potate.
Re: Begrenzte Zeit für Eingabe
Das löst das Problem mit den Tasten, aber nicht mit dem Zeitlimit. Welche Dateien muss ich jetzt herunterladen, und wo genau entpacken/installieren?Dirty Oerti hat geschrieben: Aber wenn du das anders auch hinbekommst...
Zuletzt geändert von nufan am Mo Jul 21, 2008 5:04 pm, insgesamt 1-mal geändert.