![]() |
Re: DoubleBuffered -> CPU überlastet!?
das hab ich jetzt noch nicht ausprobiert. Deinen Vorschlag kann man doch vergleichen mit einem Backpuffer!? Beansprucht das nicht so die CPU? :?:
|
Re: DoubleBuffered -> CPU überlastet!?
Zitat:
z.B.: BitBlt ist schneller als canvas.draw |
Re: DoubleBuffered -> CPU überlastet!?
Wahrscheinlich labber ich jetzt irgendein mist, aber kann ich das jetzt immer noch mit den mehreren Images machen?! :roll:
Max |
Re: DoubleBuffered -> CPU überlastet!?
Nein natürlich nicht.
TImage haben bei spielen nichts zu suchen. TImages kannst du noch als einfachen speicher für Bilder benutzen. z.B.: Das bild für Einheit ein ist in Image1. Image1 ist aber auf visible false. Jetzt zeichnest du das bild so:
Delphi-Quellcode:
nach dem alle zeichen operationen durchgeführt wurden zeichnest du das fertige Bild dann auf das formular:
backpuffer.canvas.draw(x,y,Image1.picture.bitmap);
Delphi-Quellcode:
BitBlt(canvas.handle, 0, 0, backpuffer.Width, backpuffer.Height, backpuffer.Canvas.Handle, 0, 0, srccopy);//Backpuffer aufs Formular
|
Re: DoubleBuffered -> CPU überlastet!?
ok verstanden, werde ich glecih mal testen!! :coder:
|
Re: DoubleBuffered -> CPU überlastet!?
Naja du solltest lieber TBitmap's als Speicher für die Bilder verwenden weil du dann Speicher sparst.
MfG |
Re: DoubleBuffered -> CPU überlastet!?
noch eine letzte frage: wie kann ich denn das von Canvas gezeichnete Bild wieder löschen? :?
|
Re: DoubleBuffered -> CPU überlastet!?
Liste der Anhänge anzeigen (Anzahl: 1)
So, jetzt habe ich diesen Code:
Delphi-Quellcode:
und dazu ein Screenshot, wenn ich mich nach rechts bewege! Die grauen Stellen auf dem Bild sind die Gegner!
procedure TForm1.zeichnen;
var i:integer; begin backpuffer.Canvas.Rectangle(0,0,800,600); for i := 0 to max do begin if(wand[i] <> nil) then begin backpuffer.canvas.draw(wand[i].Left,wand[i].Top,Image_wand[i].picture.bitmap); end; if(wario[i] <> nil) then begin backpuffer.canvas.draw(wario[i].Left,wario[i].Top,Image_wario[i].picture.bitmap); end; end; BitBlt(canvas.handle, 0, 0, backpuffer.Width, backpuffer.Height, backpuffer.Canvas.Handle, 0, 0, srccopy);//Backpuffer aufs Formular end; Kann mir jemand helfen?? Danke! Max |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz