Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bitmap (https://www.delphipraxis.net/125793-bitmap.html)

Ryan Smash 11. Dez 2008 19:07


Bitmap
 
Hi bin ein ziemlich unerfahrener Delphi-Programmierer und wollte einmal fragen wie die Bitmaps in Spielen dagestellt werden.
Hab mal gelesen in einem Panel, aba geht das überhaupt bzw. ist es sinnvoll in Delphi?
Wie Kann ich eine TBitmap sonst noch dastellen?

Danke
LG

Blackheart 11. Dez 2008 19:27

Re: Bitmap
 
Wir wäre es mit TImage. :wink:

Ryan Smash 11. Dez 2008 19:31

Re: Bitmap
 
Ja auf TImage bin ich auch schon gekommen^^

Nur leider hab ich ein Problem damit:

Ich habe einen Streifen sternenhimmel am oberen Bildschirm gemacht mit einer breite von 5120 Pixel.
Wenn ich rechts drücke verschiebt sich das ganze um 10 pixel nach Links, das heißt ein anderer teil wird sichtbar.
Jedoch tauchen im Bild immer wieder weiße streifen auf....wie bekomm ich die weg?

Lg

Blackheart 11. Dez 2008 19:35

Re: Bitmap
 
Delphi-Quellcode:
Form1.DoubleBuffered:=True;
Sollte eventuell helfen.

roga 11. Dez 2008 19:43

Re: Bitmap
 
Hallo und Willkommen!

Du könntest es mit DoubleBuffered versuchen, aber ob es bei einer so großen Grafik was bringt?

Wenn sich das Image auf einem Panel befindet, setze einfach: Panel1.DoubleBuffered := True; ansonsten das Formular: Form1.DoubleBuffered := True;

Gruß roga

Ach ich sehe gerade, Blackheart ist mir zuvor gekommen :|

lbccaleb 11. Dez 2008 20:43

Re: Bitmap
 
Zitat:

Zitat von Ryan Smash
Ich habe einen Streifen sternenhimmel am oberen Bildschirm gemacht mit einer breite von 5120 Pixel.

Wozu ein solch großes Bild da drinne??

turboPASCAL 11. Dez 2008 21:40

Re: Bitmap
 
Ich vermute mal, damit er es scrollen kann. ;)

Namenloser 11. Dez 2008 23:36

Re: Bitmap
 
Für Spiele ist es ungünstig, mti Komponenten zu arbeiten. Guck dir lieber mal TCanvas und TBitmap an.
Mit TCanvas.Draw(...) kannst du Bitmaps auf eine Zeichenfläche zeichnen. So eine Zeichenfläche bietet z.b. jedes Formular an (TForm.Canvas), aber auch Bitmaps selber haben so eine Zeichenfläche (TBitmap.Canvas).
Am besten ist es, du zeichnest nicht direkt auf das Canvas des Fensters, sondern nutzt ein TBitmap im Speicher als Puffer. Du zeichnest also erst auf das Bitmap, und dann klatscht du das auf das Fenster. Das hat den Vorteil, dass es beim Zeichnen nicht flimmert. Dieses Flimmern entsteht nämlich dadurch, dass die Elemente nacheinander gezeichnet werden: Die Verzögerungen nimmt man als Flimmern wahr.

Stichworte zum Zeichnen auf TCanvas wären:
Hier im Forum suchenCanvas.Draw,
Hier im Forum suchenBitBlt,
meinetwegen noch Hier im Forum suchenStretchDraw... wobei man das besser vermeiden sollte, weil die Performance dadurch in den keller geht.

Wenn es noch mehr auf Geschwindigkeit ankommt, empfiehlt sich DirectX oder OpenGL, bzw. Engines, die diese nutzen (wie z.b. Hier im Forum suchenAndorra 2D). Für einfachere Spiele reichen die Bitmaps aber auch schon.

turboPASCAL 12. Dez 2008 10:19

Re: Bitmap
 
So ist es. Hier ein zwei Programierbeispiele die mit "nur Bitmaps" arbeiten: Freeware: [Game] Simple Tetris, Open-Source: [Game] Simple Pong

Ryan Smash 12. Dez 2008 13:54

Re: Bitmap
 
Danke für die vielen Antworten aber könnte mir bitte jemand das mit den TBitmaps ein wenig genauer erklären?
Und in einem Quelltext steht "uses snd;" Was ist snd?
Und ist Delphi kompatibel mit den Modeleditor von 3DGamestudio?
Achja und ich kann DoubleBuffered nicht finden...könnte das sein, dass es das bei Turbo Delphi nicht gibt?
Und wie bekomme ich eine Bitmap in ein Panel?

So viele Fragen^^

LG


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:33 Uhr.
Seite 1 von 2  1 2      

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