C++ sprite bewegen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Kommt drauf an was du für die Sprites benutzt. Mit SFML kannst du einfach Sprite.move(x, y); machen.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Masterflo3004 
Fragesteller
 26.06.2020, 15:07

Also man muss jeden Schritt einzeln machen also ich meinte auch wenn man z.b. W drückt geht man ein Schritt nach vorne.

0
MrAmazing2  26.06.2020, 15:10
@Masterflo3004

Jo.

Einfach in deinem Main-Loop ein

if( w_pressed ) { Sprite.move(0,1) }

Dann geht er jeden Tick, wenn du gerade W drückst, einen Pixel nach vorne.

(Natürlich musst du die Variable w_pressed auf false setzen wenn w nicht gedrückt ist, und auf true, wenn w gedrückt ist).

1

Das ist nichts, was für C++ spezifisch ist, sondern etwas, das für die verwendeten Grafikbibliotheken spezifisch ist. Soweit ich weiß, gibt es keine, die für C++ so typisch ist, dass man sie als "die" C++-Grafikbibliothek bezeichnen könnte.

Für eine Bewegung eines Sprites ruft man diejenigen Bibliotheksmethoden auf, die ein Sprite von einer Stelle an eine andere bewegen, wie in jeder anderen Programmiersprache auch.

Oder man implementiert das selbst, dann muss man wissen, wie man einzelne Pixel ansteuert. Das würde aber bedeuten, das Rad neu zu erfinden, und lohnt sich nur, wenn man dabei ist an einer Grafikbibliothek mitzuentwickeln, oder ein Spiel für eine sehr primitive Konsole zu entwickeln (solche Konsolen kriegt man im Handel nicht mehr).

Woher ich das weiß:Berufserfahrung – Software-Entwickler

Indem man es immer wieder an einer neuen Stelle zeichnet. Damit das ohne Flackern läuft, wird üblicherweise in einen unsichtbaren Hintergrundpuffer gezeichnet. Nachdem alles gezeichnet wurde, wird der Hintergrundpuffer sichtbar gemacht.

Für Grafik gibt's (unter Windows) verschiedene Technologien wie GDI(+), DirectX, OpenGL.

Woher ich das weiß:Studium / Ausbildung – Datenverarbeitungs-Kfm, Hobby- und Profi-Programmierer