Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DoubleBuffered -> CPU überlastet!? (https://www.delphipraxis.net/17634-doublebuffered-cpu-ueberlastet.html)

maximi 8. Mär 2004 15:15

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? :?:

Gandalfus 8. Mär 2004 15:25

Re: DoubleBuffered -> CPU überlastet!?
 
Zitat:

Zitat von maximi
das hab ich jetzt noch nicht ausprobiert. Deinen Vorschlag kann man doch vergleichen mit einem Backpuffer!? Beansprucht das nicht so die CPU? :?:

Jo das Prinzip ist das gleiche nur es ist schneller.
z.B.: BitBlt ist schneller als canvas.draw

maximi 8. Mär 2004 15:57

Re: DoubleBuffered -> CPU überlastet!?
 
Wahrscheinlich labber ich jetzt irgendein mist, aber kann ich das jetzt immer noch mit den mehreren Images machen?! :roll:

Max

Gandalfus 8. Mär 2004 16:15

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:
backpuffer.canvas.draw(x,y,Image1.picture.bitmap);
nach dem alle zeichen operationen durchgeführt wurden zeichnest du das fertige Bild dann auf das formular:
Delphi-Quellcode:
BitBlt(canvas.handle, 0, 0, backpuffer.Width, backpuffer.Height, backpuffer.Canvas.Handle, 0, 0, srccopy);//Backpuffer aufs Formular

maximi 8. Mär 2004 16:22

Re: DoubleBuffered -> CPU überlastet!?
 
ok verstanden, werde ich glecih mal testen!! :coder:

Jörn 8. Mär 2004 16:38

Re: DoubleBuffered -> CPU überlastet!?
 
Naja du solltest lieber TBitmap's als Speicher für die Bilder verwenden weil du dann Speicher sparst.

MfG

maximi 8. Mär 2004 16:56

Re: DoubleBuffered -> CPU überlastet!?
 
noch eine letzte frage: wie kann ich denn das von Canvas gezeichnete Bild wieder löschen? :?

maximi 8. Mär 2004 18:20

Re: DoubleBuffered -> CPU überlastet!?
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, jetzt habe ich diesen Code:
Delphi-Quellcode:
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;
und dazu ein Screenshot, wenn ich mich nach rechts bewege! Die grauen Stellen auf dem Bild sind die Gegner!

Kann mir jemand helfen??
Danke! Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.
Seite 2 von 2     12   

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