System("CLS")-Parameter oder ein besserer Vorschlag
-
Hallo,
wir sollen in der Schule mit C++ einen Breakout-Klon programmieren, der dann
über die Konsole ausgegeben wird.
Um die Bewegung des der Kugel zu simulieren, müsste man ja mindestens den
Bildschirmteil, wo die Kugel gewesen ist löschen bzw. mit einem Leerzeichen be-
schreiben und dafür in Bewegungs-/Vektorrichtung die Kugel neu schreiben. Ich hab aber bisher nur system("cls") gefunden und in eine for-Schleife eingebaut, was den ganzen Screen (80x25)löscht. Flimmert leider stark und braucht auch relativ viel Rechenleistung.
Jetzt meine Frage: Kann man die Bildwiederholfrequenz,mit der clear screen arbeitet, ändern?MFG und Danke im voraus
BAPHOMET
:schland:
-
was hat das mit der Bildwiederholfrequenz zu tun?
In deiner Schleife löscht du den Bildschirm, und zeichnest das bild neu. und das wahrscheinlich ohne pausen dazwischen. Das Flimmer liegt also an der enormen hochen löschen und neumalen frequenz deines Programmes..
entweder du baust ne pause in die schleife ein "void Sleep(DWORD dwMilliseconds)" so das die Framerate also das Berechnungsintervall, und somit die Bildneuaufbau zeit verlangsamt wird, oder du überlegst dir wann ein "Neuzeichen" notwendig , aktualisiert dann neu.
Das die auflösung von 80X25 sehr grob ist, und die Berechnungszeit sehr klein, lohnt es sich erst neu zu zeichnen wenn sich der Ball soweit bewegt hat, das mann es entsprechend der Auflöung neu zeichnen muss
-
ansonsten gibt es mit conio.h auch methoden zum bewegen des cursors (ist windows-spezifisch). Oder du nimmst die improvedConsole, die darauf aufbaut (findest du hier im forum), ist aber auch windows-spezifisch. system("cls") ja aber auch
-
Also Sleep bringt nix, weil das ja dann eine Pause gemacht wird. Ich will ja ein schnelleres Bild.
Aber Cursor bewegen hört sich gut an, wenn ich den z.B. an den Anfang setzen könnte, würde ich mir das clearscreen sparen xD
Aber wie? Welche Methode?
-
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Solange man nicht in das Zeichen rechts unten schreibt,(80,25),gibts keinen LF.
Dann einfach nach (1,1) springen und neu zeichnen.
Danach sollte das Flimmern verschwunden sein.