Moin,
ich habe mich jetzt ein wenig mit der SDL auseinandergesetzt. Ich komme auch ganz gut damit zurecht allerdings habe ich ein Problem. Wenn ich bewegungen zeichnen will flackert immer alles. Mir ist auch klar woran es liegt, der Bildschirm kann die informationen nicht schnell genug darstellen.
Nun suche ich aber eine Lösung für dieses Problem. Andere Projekte wie zum beispiel
OpenTTD oder
Battle for Wesnoth flackern ja auch nicht die ganze zeit. Wie kriege ich es also hin flackerfrei zu zeichnen?
Als erstes Projekt habe ich mit vorgenommen
diese Spiel nachzuprogrammieren. Immer wieder den ganze bildschirm neuzuziechnen ist zu aufwendig. Das ging mir ziemlich schnell auf. Dann ging ich dazu über das gezeichnete quadrat zu löschen (SDL_UpdateRect) und per clipping neuzuzeichnen. Wenn ich nur mein Cursor Quadrat simuliere ist das auch kein problem aber sobald ich ein paar feind-quadrate einbaue die duch den bildschirm fliegen flackert das ganze bild und eine flüssige bewegung bekomme ich erst recht nicht hin. Ich habe mir auch schon überlegt die quadrate immer wieder auszuschneiden und an der nächsten position wieder einzufügen aber dann kopiere ich bei berührung teile des anderen quadrats mit.
Also könnt ihr mir sagen wie ich den Bildschirm so "professionell" beschreibe, verwalte und aktuallisiere das es nicht flackert?
Als zusätzliches problem habe ich noch die tatsache das double-buffering nur bei SDL_Flip funktioniert und man somit das neuzeichnen der kreise zusätzlich zum flackern life mitverfolgen kann.
Vielen Dank und schönen Gruß, Prophet
PS: Ich verwende die SDL bibliothek da sie auf den meisten plattformen verfügbar ist und angeblich auch ziemlich schnell ist. Ich habe in anderen Foren schon zu hören bekommen das ich doch lieber GDI oder DirectX verwenden solle.
Ich möchte die SDL verwenden!
Edit: Freue mich natürlich auch über links und tutorials die in dieser hinsicht weiterhelfen