Interrupts in C++?
-
Du kannst auch versuchen dir eine Entwicklungsumgebung zu besorgen, die grafische Darstellung jenseits der Konsole gestattet. Sieht besser aus und ist auch garnicht so schwer zu verstehen.
-
Schau mal hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-131915.html
oder frag in dem dazugehörigen Forum mal nach. Hier geht es in der Regel nur um reines C++ und das befasst sich nicht weiter mit Konsolen etc.
-
Da hat es auch überall Beispiele dabei. Ansonsten im WinAPI Forum nachfragen.
Sowieso ist es mir ein Rätsel, wieso du im C++ Forum gelandet bist. Was hat dein Problem oder Code mit C++ zu tun?Grüssli
-
lol
mache das auch grad mit dem snake, allerdings auch in C++

das mit dem flimmern stört echt
ist die consolenausgabe überhaupt flott genug dafür?mh das mit den threads würde das so ungefähr klappen?
thread 1 -> berechnungen des spiels mit tastenabfrage thread 2 -> zeichenn auf der console parralleles starten von thread 1 und 2würde das hinhauen oder kommen die beiden sih ins gehege von wegen der eine thread berechent grad noch die position und der adnere gibt auf einmal schon wieder alles aus, das aber nur ungenügend bzw falsch
(dachte jetzt an die thread sachen aus der winapi)
-
@Sky
Was du beschreibst ist ein Nebenläufigkeitsproblem. Für solche Fällte gibt es Mutex oder im komplexeren Fall Semaphoren. (siehe Google und Thread-API)Die Konsole gibt aber Zeichen-/Zeilenweise aus, daher ist cout da nicht geeignet. Entweder gleich eine GUI verwenden oder aber entsprechende Konsolen-APIs bei denen nicht gescrollt wird und man einzelne Zeichen an bestimmten Konsolenpositionen ansprechen kann.
-
Für 2D-Grafikprogrammierung sind die C-API SDL oder die C++-Bibliothek SFML zu empfehlen (für SFML gibt es auch ein C-Binding). Wobei ich stark zu SFML tendiere, da es viel schneller und meiner Ansicht nach auch benutzerfreundlicher ist.
Threads dafür zu verwenden finde ich leicht übertrieben.
-
ist die consolenausgabe überhaupt flott genug dafür?
Absolut.
Sofern du die Betriebsspezifischen Funktionen benutzt geht das recht flott.
Da kann man sogar 3D Anwendungen drinnen machen.
(Sieh hier, LTC. ca. 10 Post)
Allerdings bei höheren Frameraten bringst du ein flackern kaum noch weg. (Habs mal mit einer Art Doppelpufferung versucht, wurde aber nur schlimmer).
-
drakon schrieb:
Sofern du die Betriebsspezifischen Funktionen benutzt geht das recht flott. Da kann man sogar 3D Anwendungen drinnen machen.

LoL !
du freak...
aber cool
das heisst wie könnte man das denn machen, also das flimmern eindämmen?
dachte bis jetzt cout wäre der flaschenhals (oder ist ers immer noch, sollte ich eher die funktionen aus der msdn nehmen für die console?) deshalb hab ich erstmal das spielfeld in einen string gepackt und den dann gesamt ausgegeben...
für die console benutze ich die improved console...
-
Ja, also ich habe ausschlieslich WinAPI Funktionen genommen um zu rendern. Habe mir dafür ein paar Klassen geschrieben, damit ich das ganze angenehm handeln kann.
http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx
Ist dazu unumgänglich.

Für dich von Interesse sollte vor allem das hier sein:
http://msdn.microsoft.com/en-us/library/ms682662(VS.85).aspxUnd für Farbe:
http://msdn.microsoft.com/en-us/library/ms687407(VS.85).aspxIch habe, wie schon gesagt, probiert das ganze zu Buffern, indem ich mit CreateConsoleScreenBuffer einen neuen Buffer erstellt habe und den dann füllen und regelmässig mit SetConsoleActiveScreenBuffer switchen, damit ich nicht direkt auf die Konsole schreibe. Das Ergebnis war schreklich.

Funktioniert nicht, da irgendwie die ganze Konsole anfängt zu flackern. (Also nicht nur der Inhalt).
-
mh wobei
ich gucke anchehr nochmal rein
ich denke ich werds hinkriegen dass nicht immer alles neu gezeichnet werden mussdie frisch geänderten felder reichen eigendlich...
-
Hi,
du hast doch gemeint du arbeitest mit der IC!?
Da kann man doch ganz einfach an eine Stelle in der Konsole "springen" die geändert werden muss und dann mit deiner lieblings Ausgabefunktion ein neues Zeichen setzten.z.B bewegt sich die Schlange:
von-->|--------------------| | | | ~~~~~@ | | | |--------------------| nach-->|--------------------| | | | ~~~~~ | | @ | |--------------------|Jetzt kannste ja den aktuellen "Kopf" durch ein "Körper" Zeichen tauschen, einen neuen "Kopf" zeichnen und das Ende um Eins verkürzen!?
Dann sollte das Flacker schon mal stark eingedämmt sein ;).
Gruß Pingu
-
jop hab ich auch gleich vor...
muss nur erstmal die zeit finden

problem ist: da muss man für denken xD msuste man für den rest eig nicht...