mehrere cursor in einer konsole möglich???
-
hi leute,
ich frage mich gerade ob zwei cursor in in einer konsole möglich sind.... der grund fuer diese frage ist... ich moechte nen kleines minigame fuer ne consolAPI schreiben .... evtl pong. doch da ist mir aufgefallen das nur einer den cursor per tasten steuern kann... nun muss ich noch den all und den anderen pad symulieren... nur wie? ich dachte da an weitere cursor....
ThanX fuer hilfe
-
Nein, überhaupt kein Cursor ist die richtige Wahl.
Du malst ein Pad mit dem '_'-Zeichen und den Ball zB mit 'o' und zeichnest nach jeder Bewegung an die alte Stelle ein ' ' und an die neue das jeweilige Zeichen.
MfG SideWinder
-
ich würde (char)219 vorschagen, das ist (jedenfalls bei meinem Zeichensatz) ein gefüllter char; also wie ein blank mit ner anderen Hintergrundfarbe (was auch eine Möglichkeit wäre)
-
SideWinder schrieb:
Nein, überhaupt kein Cursor ist die richtige Wahl.
Du malst ein Pad mit dem '_'-Zeichen und den Ball zB mit 'o' und zeichnest nach jeder Bewegung an die alte Stelle ein ' ' und an die neue das jeweilige Zeichen.
MfG SideWinder
was meinst du, ich verstehs nicht ganz... koenntest du mit mal bitte nen kleines beispiel geben?! ThanX
-
#include <windows.h> // [...] while ( Running ) { // [...] std::cout << char(219); // [...] system( "cls" ); } // [...]
Ansonsten: Google
-
SideWinder meint, dass der zweite Pong-Balken (oder was auch immer du vorhast) nicht durch einen zweiten Cursor zustande kommt (oder gar der zweite Pongbalken selbst sein soll...), sondern dass ein Cursor (und zwar der, den du sowieso immer hast ^^) zwei Balken malt (irgendein geeignetes ASCII-Zeichen). Die Ausgabe ist in aller Regel schnell genug, um alle Konsolenspielelemente zu zeichnen, ohne dass man den Vorgang selbst beobachten kann. Das Animieren der Pong-Balken kommt dadurch zustande, dass du am unteren Balkenende ein ASCII-Zeichen hinzufügst und am oberen Balkenende ein noch dort stehendes Zeichen mit einem Leerzeichen überschreibst.
Bei uns im Geschäft wurde (allerdings unter Borland C++ Compiler 3.11) mit dieser Technik ein komplettes Tetris und Pong geschaffen, die sich nahezu ruckelfrei spielen lassen (leider sind beide Projekte - derzeit? - leider nicht online). Falls du dennoch (ein etwas primitiveres) Beispiel suchst, dann habe ich dir mein Snake im Angebot. Der Source ist vielleicht für dich nicht direkt zu verwenden, aber anhand der Funktion kann man erkennen, wie es funktioniert - die Kommentare sollten die Lesbarkeit erhöhen. Hier der Link:
SNAKE.C (inzwischen nicht mehr online)
-
BTW:
- Optimum: Immer nur löschen was auch zu löschen ist
- Nicht ganz so gut: Wenn schon alles löschen dann wenigstens mit der WinAPI (oder der Improved Console wenns einfach sein soll)
- Auf jeden Fall nicht ruckelfrei: system("cls")MfG SideWinder