AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DoubleBuffered -> CPU überlastet!?
Thema durchsuchen
Ansicht
Themen-Optionen

DoubleBuffered -> CPU überlastet!?

Ein Thema von maximi · begonnen am 7. Mär 2004 · letzter Beitrag vom 8. Mär 2004
Antwort Antwort
Seite 1 von 2  1 2      
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#1

DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 18:15
Hallo!
Ich mache zurzeit ein Wario-game, das ich unten angehängt hab!
Ich habe nämlich ein Problem mit meinem DubbleBuffered. Wenn ich in die Nähe vieler "Gegner" komme, ist meine CPU vollkommen überlastet.
Wenn ich aber DubbleBuffered ausschalte (was eigentlich nicht möchte) läuft alles reibungslos. Was kann ich tun??

Max
Angehängte Dateien
Dateityp: zip wario.zip (256,5 KB, 40x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 18:22
wie ist das spiel derzeit realsiert? hast du mehrere TImages die du verschiebst oder zeichnest du direkt auf die Canvas des formulares? wenn du direkt auf die canvas zeichnest könntest du doublebuffered auf false setzen weil es dann nciht mehr benötigt wird
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#3

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 18:27
Nee, ich verschiebe mehrere TImages!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 18:56
anstelle des imageverschiebens mal lieber direkt auf die canvas vom formular. natürlich vorher den hintergrund sichern damit, wenn das object weiterrückt, der hintergrund wieder da ist
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#5

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 19:14
hä? das hab ich nicht so ganz verstanden. also was soll ich deiner meinung nach machen?
  Mit Zitat antworten Zitat
Benutzerbild von LoW_FloW
LoW_FloW

Registriert seit: 29. Nov 2003
117 Beiträge
 
Delphi 7 Professional
 
#6

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 19:20
Zitat von maximi:
Wenn ich aber DubbleBuffered ausschalte (was eigentlich nicht möchte) läuft alles reibungslos.
Mal eine Frage von einem n00b, was ist DoubleBuffered und wie benutzt man das? Ich habe nämlich auch schon ein paar Spiele progerammiert, bei denen ich TImages verschoben habe. Dabei habe ich nie davon gehört. Naja, ich bin auch ein napp
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 19:42
@LoW_FloW: wenn du in der hilfe nach doublebufferd suchst wirst du ne erklärung finden die in etwa aussagt das wenn doublebuffered auf true gesetzt wird das flimmern reduziert wird aber gleichzeitig die cpu-last zunimmt weil halt das bild nicht direkt gemalt wird sondern im speicher gemalt wird und dan unterschiedlichen ebenen übereinander gelegt werden und das dann komplett auf die form gemalt wird...

Ich meinte das du anstelle der TImages das ganze direkt auf die Canvas vom formular malen sollst.
Also:
  draw(xpos,ypos, Spielfigurbild); und bevor du das ausführst sollst du die fläsche wo die Figur drauf gemalt wird sichern weil du ja wenn die figur weiterrückt du den hintergrund neu malen musst (weil die figur ja dann nicht mehr an der stelle ist)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#8

Re: DoubleBuffered -> CPU überlastet!?

  Alt 7. Mär 2004, 19:45


Die Hilfe (F1...) fühlt sich hintergangen und meint
Hat DoubleBuffered den Wert False, wird das fensterorientierte Steuerelement direkt in das Fenster gezeichnet. Ist DoubleBuffered True, zeichnet sich das fensterorientierte Steuerelement in ein Speicher-Bitmap, das dann zum Zeichnen des Fensters verwendet wird. Durch die Doppelpufferung tritt weniger Flimmern beim Neuzeichnen des Steuerelements auf. Auf der anderen Seite wird jedoch mehr Speicher benötigt.


mfg Tobias

//Edit da war wer schneller.
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
maximi

Registriert seit: 9. Jun 2003
217 Beiträge
 
Delphi 7 Personal
 
#9

Re: DoubleBuffered -> CPU überlastet!?

  Alt 8. Mär 2004, 09:53
Ich habe ja verschiedene Wandgrößen und somit auch verschiedene Bildergrößen und ich jedes Wand Image trotdem laden muss, damit ich dann in Delphi schreiben kann:

form1.canvas.draw(wand[0].left,wand[0].top,wand[0].picture.bitmap); Kann man das vielleicht anders schreiben, oder gibt es noch ne bessere Lösung?

Max
  Mit Zitat antworten Zitat
Gandalfus

Registriert seit: 19. Apr 2003
407 Beiträge
 
Delphi 2006 Professional
 
#10

Re: DoubleBuffered -> CPU überlastet!?

  Alt 8. Mär 2004, 13:41
Zitat von maximi:
Nee, ich verschiebe mehrere TImages!


Delphi-Quellcode:
var
  backpuffer: TBitmap:
  Einheiten: array [0..12]: TBitmap:
oncreate:
Delphi-Quellcode:
backpuffer := TBitmap.create;
  backpuffer.width := width;
  backpuffer.height := height;

  for i:=0 to heigh(Einheiten)
  begin
    Einheiten[i] := TBitmap.create;
  end;
  Einheiten[2].loadfromfile(XXXXXXXXXXXXXX);
  .....
timer mit kleinem INtervall:

Delphi-Quellcode:
//Zeichen Einheiten auf Backpuffer........

BitBlt(canvas.handle, 0, 0, backpuffer.Width, backpuffer.Height, backpuffer.Canvas.Handle, 0, 0, srccopy);//Backpuffer aufs Formular
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz