Begrenzte Zeit für Eingabe

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Begrenzte Zeit für Eingabe

Beitrag von nufan » Mo Jul 21, 2008 5:01 pm

Also so wies aussieht hat dein Avatar aber nichts mit Plattformübergreifender Programmierung zu tun, oder?
Ich versuchs ja, aber wie du ja selbst gesagt hast, gibt es keine andere Funktion mit der das geht und getch () ist eben in conio.h. Außerdem schreibe ich (noch) auf WIndows. Und da es keine Möglichkeit gibt, es Linux und WIndows recht zu machen, musste ich mich für Windows entscheiden.

Benutzeravatar
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

Beitrag von Xin » Mo Jul 21, 2008 7:11 pm

dani93 hat geschrieben:
Also so wies aussieht hat dein Avatar aber nichts mit Plattformübergreifender Programmierung zu tun, oder?
Ich versuchs ja, aber wie du ja selbst gesagt hast, gibt es keine andere Funktion mit der das geht und getch () ist eben in conio.h. Außerdem schreibe ich (noch) auf WIndows. Und da es keine Möglichkeit gibt, es Linux und WIndows recht zu machen, musste ich mich für Windows entscheiden.
Wenn SDL das kann, dann passt es doch portabel!?
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.

Metamorph
Beiträge: 123
Registriert: Sa Jul 05, 2008 12:27 pm

Re: Begrenzte Zeit für Eingabe

Beitrag von Metamorph » Mo Jul 21, 2008 8:27 pm

Code: Alles auswählen

#include<stdio.h>
#include<stdlib.h>

/* Systemkonstante setzen */

#ifdef WINDOWS
    #define ERASE "cls"
#elif LINUX
    #define ERASE "clear"
#endif

int main(){
    /* ... */
    system(ERASE);
    /* ... */
    getchar();
    /* ... */
    return 0;
}

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Begrenzte Zeit für Eingabe

Beitrag von Kerli » Mo Jul 21, 2008 9:50 pm

Metamorph hat geschrieben:

Code: Alles auswählen

#include<stdio.h>
#include<stdlib.h>

/* Systemkonstante setzen */

#ifdef WINDOWS
    #define ERASE "cls"
#elif LINUX
    #define ERASE "clear"
#endif

int main(){
    /* ... */
    system(ERASE);
    /* ... */
    getchar();
    /* ... */
    return 0;
}
Bei 'getchar' gibt es nur das Problem, dass man jede Eingabe mit Enter bestätigen muss, was bei einer Spielsteuerung über die Pfeiltasten etwas ungeeignet seien dürfte. Also ich würde auch zur SDL raten, oder für einfache Versuche unter Windows zur Not auf die WinAPI mit 'GetAsyncKeyState()' zurückgreifen.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Begrenzte Zeit für Eingabe

Beitrag von Dirty Oerti » Mo Jul 21, 2008 9:53 pm

Mit SDL wäre das wie schon gesagt auch nicht sonderlich schwierig.

:)
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.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Begrenzte Zeit für Eingabe

Beitrag von Kerli » Mo Jul 21, 2008 9:59 pm

Dirty Oerti hat geschrieben:Mit SDL wäre das wie schon gesagt auch nicht sonderlich schwierig.

:)
Ja, es ist wirklich ganz einfach. Man muss nur unter Windows ein Archiv entpacken oder unter Linux ein Packet installieren und schon kann man die SDL verwenden. Auf meiner Hompage hab ich auch ein Tutorial geschrieben, wie man die SDL initialisiert. Und ein Tutorial über Eingaben ist gerade in Arbeit.
Da könntest auch gleich mit OpenGL weitermachen :D
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Begrenzte Zeit für Eingabe

Beitrag von nufan » Di Jul 22, 2008 11:22 am

Kerli hat geschrieben:Bei 'getchar' gibt es nur das Problem, dass man jede Eingabe mit Enter bestätigen muss, was bei einer Spielsteuerung über die Pfeiltasten etwas ungeeignet seien dürfte.
Und genau deshalb brauch ich getch () (falls ich es ohne SDL mache).

Ich zitiere mich ungern selbst, aber:
dani93 hat geschrieben:
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?
Werd mir mal dein Tutorial ansehen. :)
Metamorph hat geschrieben:

Code: Alles auswählen

#include<stdio.h>
#include<stdlib.h>

/* Systemkonstante setzen */

#ifdef WINDOWS
    #define ERASE "cls"
#elif LINUX
    #define ERASE "clear"
#endif

int main(){
    /* ... */
    system(ERASE);
    /* ... */
    getchar();
    /* ... */
    return 0;
}
Und wie definiere ich, ob es WINDOWS oder LINUX sein soll?

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Begrenzte Zeit für Eingabe

Beitrag von Kerli » Di Jul 22, 2008 11:36 am

dani93 hat geschrieben:
Kerli hat geschrieben:Bei 'getchar' gibt es nur das Problem, dass man jede Eingabe mit Enter bestätigen muss, was bei einer Spielsteuerung über die Pfeiltasten etwas ungeeignet seien dürfte.
Und genau deshalb brauch ich getch () (falls ich es ohne SDL mache).
Hier hab ich einen guten Beitrag dazu gefunden. Für erste Versuche ist 'getch' sicher nicht schlecht, für was größeres solltest du dann aber besser was anderes nehmen.
dani93 hat geschrieben: Ich zitiere mich ungern selbst, aber:
dani93 hat geschrieben:
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?
Werd mir mal dein Tutorial ansehen. :)
Ein neuer Leser ;) Sag mir dann bitte ob es funktioniert hat und ob es verständlich bzw. vollständig genug war.
dani93 hat geschrieben:
Metamorph hat geschrieben:

Code: Alles auswählen

#include<stdio.h>
#include<stdlib.h>

/* Systemkonstante setzen */

#ifdef WINDOWS
    #define ERASE "cls"
#elif LINUX
    #define ERASE "clear"
#endif

int main(){
    /* ... */
    system(ERASE);
    /* ... */
    getchar();
    /* ... */
    return 0;
}
Und wie definiere ich, ob es WINDOWS oder LINUX sein soll?
Versuchs einmal mit:

Code: Alles auswählen

#ifdef _WIN32
    #define ERASE "cls"
#else
    #define ERASE "clear"
#endif
'_WIN32' wird von allen Kompilern unter Windows automatisch definiert.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Begrenzte Zeit für Eingabe

Beitrag von nufan » Di Jul 22, 2008 11:44 am

Ein neuer Leser Sag mir dann bitte ob es funktioniert hat und ob es verständlich bzw. vollständig genug war.
Was mir spontan dazu einfällt ist, zuvor schon auf den verwendeten Compiler hinzuweisen. Du erwähnst MinGW erst bei dem entpacken von SDL. So, weiter hab ich noch nicht gelesen. :D
'_WIN32' wird von allen Kompilern unter Windows automatisch definiert.
Gut zu wissen, Thx.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Begrenzte Zeit für Eingabe

Beitrag von Kerli » Di Jul 22, 2008 11:50 am

dani93 hat geschrieben:
Ein neuer Leser Sag mir dann bitte ob es funktioniert hat und ob es verständlich bzw. vollständig genug war.
Was mir spontan dazu einfällt ist, zuvor schon auf den verwendeten Compiler hinzuweisen. Du erwähnst MinGW erst bei dem entpacken von SDL. So, weiter hab ich noch nicht gelesen. :D
Danke, auf das bin ich eigentlich gar nicht wirklich gekommen ;) Am Besten wird ws eh sein, wenn ich zuerst einmal ein paar Extraartikel schreib, in denen jeweils für eine Plattform und für einen Kompiler beschrieben wird, wie man es dort einrichtet.
dani93 hat geschrieben:
'_WIN32' wird von allen Kompilern unter Windows automatisch definiert.
Gut zu wissen, Thx.
Diese Seite kann oft recht nützlich sein, wenn man nachschauen möchte, welche Makros wann definiert sind.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Antworten