Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Potatoman« (17.05.2010, 02:16)
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Potatoman« (18.05.2010, 06:10)
Das würde sowieso nicht passieren, da du ja noch Message Handling mit einbauen solltest. Und ums neu zeichnen wirst du nicht so einfach herumkommen, denn was ist, wenn z.B. ein Fenster verschoben wird? Du müsstest den aktuellen Backbuffer speichern, diesen neu zeichnen und dann die aktuelle GUI drüberzeichnen. Das wäre zumindest schneller, als z.B. im Hintergrund eine 3D Szene erneut berechnen zu lassen. Oder du benutzt eine Art transparenten Layer, den du jedes Mal problemlos clearen kannst ohne, dass der Backbuffer davon betroffen ist. Und was ist mit den Controls? Wenn z.B. ein Button gedrückt wird, muss dieser doch auch neu gerendert werden!? Man könnte jetzt wieder die gesamte GUI neu rendern, aber ich denke da wäre es die einfachste Methode einfach ein schwarzes Quadrat über den alten Button zu zeichnen und den neuen Button drüber zu zeichnen. Eine GUI ist ein sehr komplexes Thema und so ohne weiteres wird es nicht ganz so einfach mal eben eine GUI zu schreiben. Ich rate dir mal ein wenig zu googeln oder dir Bücher zu kaufen. Alternativ könnte Source Code lesen auch nicht schaden. Ansonsten kenne ich noch dieses Tutorial von damals: KlickZitat
Ich stelle mir das auch grd mal in nem Spiel vor. In 99% der Zeit die man am Spielen ist sieht die Gui immer gleich aus. Soll man nun mit jeder Frame den ganzen Kram neu rendern, oder dann doch lieber einmal alles in einen Backbuffer, und dann einfach den Backbuffer drüber kippen?
Die Grundidee ist schon ganz gut, beim Mac und iPhone wird das auch ungefähr so gemacht, man muss nur das Wort Backbuffer durch Textur tauschen.Mir ist da grad mal sone kleine Idee gekommen. Wie wäre es denn, wenn man jedes "Fenster" in einen eigenen Backbuffer rendert. Dabei werden die ganzen Controlls die ein Fenster als Children hat auch in deren Backbuffer gerendert.
...
Vor allem ersteres dürfte mit eines der größten Probleme sein, letzteres könnte man z. Bsp. abfangen, in dem man nur Fenster/Panel cached, die sich im letzten Frame nicht geändert haben.Größe ändern oder Animationen können aber dafür aufwendiger werden, da die Textur immer wieder geändert oder sogar komplett neu gemalt wird.
C-/C++-Quelltext |
|
1 2 3 4 |
while(true) { printf("Schon wieder aufgehangen!?"); } |
Werbeanzeige