Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TImage mehrmals gleichzeitig auf Form zeichnen (https://www.delphipraxis.net/203277-timage-mehrmals-gleichzeitig-auf-form-zeichnen.html)

scholzi265 31. Jan 2020 09:34

TImage mehrmals gleichzeitig auf Form zeichnen
 
Hallo zusammen,

ich arbeite momentan an der Programmierung des Spiels Snake, und muss nur noch die Grafiken einfügen. Das heißt, ich habe den Kopf der Schlange schon eingefügt, allerdings brauche ich noch den Körper, der aus aneinanderhängenden, grünen Kreisen besteht.
Ich lade diesen Kreis aus einem JPG und habe nun auf Form1 ein TImage eingefügt, in welchem dieses JPG enthalten ist. Wenn sich die Schlange bewegt, verschiebe ich jeweils dieses TImage. Nun habe ich folgendes Problem:
Die Schlange wird mit zunehmender Zeit länger, deshalb brauche ich mehrere "Glieder". Allerdings ist das TImage auf der Form ja nur einmal vorhanden. Gibt es einen Weg, dieses TImage zu duplizieren, sodass man dann 2 dieser Glieder auf einmal auf der Form hat und verschieben kann? Oder gibt es einen anderen Weg, weitere "Glieder" der Schlange auf der Form zu erzeugen?

Vielen Dank schon einmal im Voraus,
Tristan Scholz

p80286 31. Jan 2020 10:11

AW: TImage mehrmals gleichzeitig auf Form zeichnen
 
Es ist ja schon etwas her, (DOS und Textbildschirm) aber wenn ich mich recht erinnere wurde der Kopf und 1..9 Glieder neu gezeichnet und der Schwanz gelöscht und neu gezeichnet. Es wurden aber keine Zeichen verschoben.
Vllt solltest Du Deine Vorgehensweise noch einmal überdenken.

Gruß
K-H

scholzi265 31. Jan 2020 10:36

AW: TImage mehrmals gleichzeitig auf Form zeichnen
 
Wie kann ich denn Grafiken in die Bitmap laden?

KodeZwerg 31. Jan 2020 10:39

AW: TImage mehrmals gleichzeitig auf Form zeichnen
 
Zitat:

Zitat von scholzi265 (Beitrag 1456410)
Wie kann ich denn Grafiken in die Bitmap laden?

docwiki

scholzi265 31. Jan 2020 10:42

AW: TImage mehrmals gleichzeitig auf Form zeichnen
 
Hat funktioniert, vielen Dank!!!

himitsu 31. Jan 2020 11:27

AW: TImage mehrmals gleichzeitig auf Form zeichnen
 
ScanLine ist für den "Schnellen" Zugriff auf Zeilen, und dort muß man immer auf das PixelFormat achten, da auf die Rohdaten zugegriffen wird.

Ansonsten alle Methoden im Delphi-Referenz durchsuchenTCanvas, wie z.B. Bitmap.Canvas.Pixels[x,y] (auch wenn Pixels nicht die schnellste Methode ist)
und via Bitmap.Handle (HBITMAP) oder Bitmap.Canvas.Handle (HDC) können auch viele weitere Methoden verwendet werden, welche direkt mit den Windows-Handles arbeiten.


PS:
  • auf ein Delphi-Referenz durchsuchenTImage (Image.Picture.Bitmap) zeichnen
  • oder intern auf ein Bitmap und das dann auf die Form (macht TImage nicht viel anders)
  • oder direkt im OnPaint auf die Form, bzw. auf eine Delphi-Referenz durchsuchenTPaintBox
  • und dann gibt es noch unzählige Graphic-Engines, wo du nicht selbst malst, sondern z.B. Sprites (Teil-Bitmaps) und nur noch deren Position angibst
    Andorra 2D uvm. Bei Google suchenDelphi 2D graphic engine
  • ...
  • und ich bin mir ganz sicher, dass es hier im Forum viele Tutorials gibt, bezüglich dem Zeichnen von 2D-Rastergrafiken für einfache Spiele

Luckie 31. Jan 2020 12:55

AW: TImage mehrmals gleichzeitig auf Form zeichnen
 
Und Snake hatten wir in der Geschichte der Delphipraxis bestimmt auch schon mal. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 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