![]() |
DelphiX für Anfänger (2)
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
hier also die Fortsetzung von Teil I. Kapitel 3 Übernehmt das Beispiel aus DelphiX für Anfäner (1), damit wir loslegen können. Bilder bewegen Um ein Bild auf der DXDraw Oberfläche zu bewegen, müssen wir die X bzw. Y-Koordinate des DXImageList1.Items[0].draw(dxdraw1.surface,0,0,0) Befehls ändern. Dazu werden wir die DXTimer Komponente benutzen. Als erstes brauchen wir aber zwei Variablen, die die X, Y Werte übergeben. Die anderen zwei Variablen werden für die Bewegung benötigt. Dazu schreiben wir folgendes:
Delphi-Quellcode:
var
Form1: TForm1; x: integer=0; y: integer=0; vx: integer=1; vy: integer=1; Da wir nicht wollen, dass das Bild nur angezeigt wird, wenn wir auf die Oberfläche drücken, entfernen wir den Code aus dem OnClick Ereignis der DXDraw und schreiben in das OnTimer Ereignis unseres Timer folgendes:
Delphi-Quellcode:
Durch die oben geschriebenen If-Bedingungen bewirken wir, dass das Bild im Fenster herum-"bounced"
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin if not DXDraw1.CanDraw then Exit; //dürfte bekannt sein x := x+vx; //Bewegung um vx in die X-Richtung y := y+vy; //Bewegung um vy in die Y-Richtung} if x <= 0 then vx := vx * - 1; //wenn das Bild am linken Rand ist, //soll es sich in die Gegenrichtung bewegen if x >= dxdraw1.width-dximagelist1.Items[0].width then vx := vx * - 1; //wenn das Bild am rechten Rand ist, //soll es sich in die Gegenrichtung bewegen if y <= 0 then vy := vy * - 1; //wenn das Bild oben ist, //soll es sich in die Gegenrichtung bewegen if y >= dxdraw1.height-dximagelist1.Items[0].height then vy := vy * - 1; //wenn das Bild unten ist, // soll es sich in die Gegenrichtung bewegen dximagelist1.Items[0].draw(DXDraw1.Surface, x,y, 0); // dürfte bekanntsein DXDraw1.Flip; //dürfte bekannt sein end; (sich nicht aus dem Fenster bewegt sondern sich zurück bewegt). Man kann die Geschwindigkeit des Timers beliebig einstellen, in dem sie die Eigenschaft Interval ändert (in Millisekunden). Nun startet das Programm mit Drücken auf F9 und das Bild bewegt sich hin und her. (Siehe Beispielprogramm im Attachment) MfG Marc ![]() P.S.: Dieses Tutorial hat "MiGa" erstellt. Es wurde von meiner Wenigkeit ein weing abgeändert. :wink: [edit=Admin]Code-Tags in Delphi-Tags geändert. ;-) Mfg, Daniel[/edit] [edit=sakura] Auf Wunsch Links zu den Tutorial 2 hinzugefügt. Mfg, sakura[/edit] |
Re: DelphiX für Anfänger (2)
gehts noch weiter mit den tuts?
|
Re: DelphiX für Anfänger (2)
Wieso deklarierst du globale Variablen mit den Bezeichnern "x", "y", etc.? Das schreit ja nach späteren Fehlern.
|
Re: DelphiX für Anfänger (2)
@oxmyx
weil das hier für das Verständnis gar nichts zur Sache tut, wie da was deklariert ist... |
Re: DelphiX für Anfänger (2)
Ohne meckern zu wollen, da fehlt ein
Delphi-Quellcode:
DXDraw1.Surface.Fill(clBlack);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr. |
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 by Thomas Breitkreuz