Einzelnen Beitrag anzeigen

ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Eigene einfache 2D Grafik Engine

  Alt 7. Okt 2006, 00:01
Hallo


Ich habe ein Problem mit Grafiken.

Ich programmiere gerade ein Spiel bei den auf der ganzen Form ständig bis zu 50 Images bewegt und vergrößer/verkleinert werden.

Leider geht das nicht ruckelfrei.

Ich habe schon mehrmals gelesen das TImage einfach nicht dafür gedacht ist,
deshalb möchte ich mir jetzt selbst eine ganz einfache Engine schreiben.

Delphix und andere Engines hab ich schon ausprobiert,
die sind aber zu komplex, bzw. zu aufwendig für meine Programme.
Vor allem möchte ich die Engine selbst schreiben.


Mein Ansatz ist simple:
Ich zeichne die 50 Objekte, die alle Rechtecke sind und meist einfärbig, auf einen TBitmap und mit
 BitBlt(paintbox1.Canvas.Handle, 0, 0, bm.Width, bm.Height, bm.Canvas.Handle, 0, 0, SrcCopy); bring ich es dann auf ein TPaintBox.

Die Paintbox wird dann alle 50ms neu gezeichnet.

Jetzt meine eigentlich Frage:
Wenn ich bei meiner jetztigen Programmierung, bei dder ich 50 TImages verwende, doublebufferd auf true stelle,
dann ruckelt zwar nichts mehr, nur es wird alles um ca. das 10 Fache verlangsamt und die CPU springt sofort auf 100%.

Doublebufferd mach aber genau das selbe was ich machen will:
Es zeichnet intern auf ein Bitmap und bringt es dann auf einmal auf die Form.


Daher frage ich nun:
Hat meine Engine, so wie ich sie mir vorstelle, überhaupt einen Sinn?
Ist da ein Unterschied wen ich alle Objekte auf ein TBitmap Zeichne und dann auf eine PaintBox kopiere,
oder ob ich 50 Images habe und mit DoubleBufferd auf ein TBitmap intern zeichnen lasse?

Kann mich wer aufklären???


Bin auch dankbar für Ideen für die Engine,
sollt hal sehr einfach sein.
  Mit Zitat antworten Zitat