![]() |
Image nach Tastendruck bewegen
Hallo!
Für mein erstes kleines Spiel würde ich gerne ein Image das ein Schiff darstellt bewegen. Ich hatte dabei an OnKeyPress und OnKeyUp Ereignisse gedacht. Wie kann man das Image dann am Besten bewegen? Mit Timern oder wie? Es soll ja schön gleichmäßig und sanft hin und her "fliegen". Mit DelphiX würde ich nicht so gerne arbeiten da ich das 1. nicht installiert habe und 2. keine Lust habe wieder von vorne anzufangen :mrgreen: Ich bin dankbar für alle Lösungsansätze! MfG Florian :hi: |
Re: Image nach Tastendruck bewegen
Einfach den Left und den Top Wert der Image Komponente ändern. Oder meinst du mit Image nicht die Komponente?
|
Re: Image nach Tastendruck bewegen
Das ist mir schon klar. Es geht mir mehr um den Aufbau der Bewegungsprozedur. Wie man die Werte am Besten ändert usw.
MfG Florian :hi: |
Re: Image nach Tastendruck bewegen
Zur Steuerung könntest du ne TPoint Variable nehmen, die die Richtung angibt und ob negativ oder positiv.
|
Re: Image nach Tastendruck bewegen
Hi Florian,
am Besten setzt du im Formular die Eigenschaft KeyPreview auf true und schreibst dann im OnKeyDown des Formular:
Delphi-Quellcode:
Chris
case Key of
VK_UP: // keine Ahnung wie das heißt begin // bewege nach oben end; // usw. end; |
Re: Image nach Tastendruck bewegen
Hi!
Ich würde es mit einem (2) Timer(n) machen. Im OnKeyDown: Enabled:=true; Im OnKeyUp: Enabled:=false; Allerdings, wenn du den TTimer verwendest, dann musst du ihn auf "Standby" stellen (einmal aktivieren und danach wieder deaktivieren), da dieser beim 1. Aktivieren eine Verzögerung hat. |
Re: Image nach Tastendruck bewegen
high,
ich würde das so machen:
Delphi-Quellcode:
.
procedure Form1.KeyPress (...)
begin if Key = #ascci code# then begin Image1.top := Image1.top + 1; end end; . . :spin: [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Re: Image nach Tastendruck bewegen
@Chris: Stimmt, so geht's auch. :mrgreen:
|
Re: Image nach Tastendruck bewegen
Danke euch allen!
Ich habe jetzt folgenden Code im OnKeyDown und es funzt super:
Delphi-Quellcode:
MfG Florian :hi:
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if CanMoveShip = true then begin case Key of VK_LEFT: begin if ShipImage.Left > 3 then ShipImage.Left := ShipImage.Left -4 end; VK_RIGHT: begin if ShipImage.Left < 430 then ShipImage.Left := ShipImage.Left +4 end end; end else end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 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-2025 by Thomas Breitkreuz