pkffsl
Goto Top

CPP - Optimierung der Bildausgabe eines Breakout-Spiels

VS 2008

Hallo,

wir sollen in der Schule einen Breakout-Klon mit C++ und Konsolenausgabe programmieren.
Ist ja an sich nicht schwer xD
Ich hab nur ein Problem: Wenn die neue Position des Balls ausgegeben werden soll, also die alte Position gelöscht und die neue geschrieben worden ist (im char array[80][20]), hab ich mit Kanonen auf Spatzen geschossen und per system("cls") alle Ausgaben gelöscht. Da system("cls") wohl etwas länger braucht, flackert das Bild.
Frage:Kann ich den Ausgabecursor an den Anfang zurücksetzen? Oder gibt es schnellere Methoden als system("cls")?

Wer das Spiel nicht kennen sollte- hier ein Bild vom Anfangsstadium

f34eec96d4e9370b25eeebfe151b815c-breakout

MfG und Danke im voraus
pkffsl

Content-Key: 90810

Url: https://administrator.de/contentid/90810

Printed on: April 24, 2024 at 23:04 o'clock

Member: miniversum
miniversum Jun 27, 2008 at 18:04:47 (UTC)
Goto Top
Ich habe sowas ähnliches auch mal gebraucht.
Schau mal im Internet nach der conio2.0 (http://sourceforge.net/projects/conio/). Dort gibt es einen Gotoxy-Befehl mitdem du an eine bestimmte Position des Bildschirms springen kannst. So must du nicht alles löschen sondern kanst an die alte Position des Balls springen, dort ein " " einfügen und dann direkt an die neue Position springen.
Eine cls funktion, die schneller ist gibt es dort glaube ich auch.
Member: pkffsl
pkffsl Aug 18, 2008 at 11:38:43 (UTC)
Goto Top
Der Volständigkeit halber:

void gotoxy (int x, int y)
{
COORD abc;
abc.X=x; /*koordinate x*/
abc.Y=y; /*koordinate y*/
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), abc );
}

und in der Main

#include<windows.h>

gotoxy (x,y);

FUNKTIONIERT