hi
aus langeweile bin ich gerade dabei einen pong ableger zu programmieren.
das ganze steht auch schon recht gut, einziges problem: bewegungen vom ball und computer sind nur möglich wenn der spieler sich bewegt.
knackpunkt ist hier das einlesen der spieler bewegungen.
ich benutze heirfür den befehl getch().
in meinem programm ablauf kommt nach dem einlesen dann die weitere verarbeitung.
egal wie, ich finde keinen weg diese sperre zu umgehen; wird keine taste betätigt stockt das ganze und wartet solange.
jetzt meine frage: gibt es eine möglichkeit eine art 2. programm zu starten das wartet bis eine tastatur eingabe erfolgt, das zeichen dann dem hauptprogramm übergibt damit es dort weiterverarbeitet werden kann?
also so, dass das hauptprogramm weiterlaufen kann ohne das dauerhaft tastatur eingaben erfolgen müssen?
möglichkeiten in c und c++ sind ok. alles andere sollte sich in etwa auf die beiden sprachen abwandeln lassen.
für jegliche hilfe bin ich sehr dankbar.
ciao
Seite 1 von 1
Programmierproblem In C/c++ 2. prozess starten der ersten "füttert"
Anzeige
#2
geschrieben 20. August 2005 - 18:40
hab das problem auf andere weise gelöst.
bin aber auf was gestoßen das wahrscheinlich in die richtung geht was ich wollte.
mit einem befehl spwan() aus der bibliothek processes.h soll das möglich sein.
kann man das hier verifizieren oder vll sogar jemand mal code posten der das schön darlegt und erklärt?
rein interessehalber von meiner seite her.
ciao
bin aber auf was gestoßen das wahrscheinlich in die richtung geht was ich wollte.
mit einem befehl spwan() aus der bibliothek processes.h soll das möglich sein.
kann man das hier verifizieren oder vll sogar jemand mal code posten der das schön darlegt und erklärt?
rein interessehalber von meiner seite her.
ciao
#3
geschrieben 26. August 2005 - 23:49
Spwan ist dafür ungeeignet
Aber du kannst das ganz einfach durch Threads lösen.
Thread 1 wartet auf Usereingaben
Thread 2 ist dein Programmcode der das Spiel steuert
Beide laufen unabhängig voneinander und blockieren einander deswegen auch nicht.
wenn Thread1 ne Usereingabe bekommt, dann signalisierst du Thread2, dass z.B. ne neue Eingabe erfolgt ist und der kann dann damit arbeiten oder du blockst stoppst den zweiten Thread mit Hilfe eines Mutexes oder Semaphores, der holt sich die Zeichen ab gibt den Semaphore wieder frei und es geht weiter bis zur nächsten Eingabe.
Beispiele findest du dafür massig im Netz.
Aber du kannst das ganz einfach durch Threads lösen.
Thread 1 wartet auf Usereingaben
Thread 2 ist dein Programmcode der das Spiel steuert
Beide laufen unabhängig voneinander und blockieren einander deswegen auch nicht.
wenn Thread1 ne Usereingabe bekommt, dann signalisierst du Thread2, dass z.B. ne neue Eingabe erfolgt ist und der kann dann damit arbeiten oder du blockst stoppst den zweiten Thread mit Hilfe eines Mutexes oder Semaphores, der holt sich die Zeichen ab gibt den Semaphore wieder frei und es geht weiter bis zur nächsten Eingabe.
Beispiele findest du dafür massig im Netz.
Thema verteilen:
Seite 1 von 1