Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Image nach Tastendruck bewegen (https://www.delphipraxis.net/8580-image-nach-tastendruck-bewegen.html)

flomei 8. Sep 2003 13:14


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:

Tpercon 8. Sep 2003 13:16

Re: Image nach Tastendruck bewegen
 
Einfach den Left und den Top Wert der Image Komponente ändern. Oder meinst du mit Image nicht die Komponente?

flomei 8. Sep 2003 13:18

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:

Tpercon 8. Sep 2003 13:21

Re: Image nach Tastendruck bewegen
 
Zur Steuerung könntest du ne TPoint Variable nehmen, die die Richtung angibt und ob negativ oder positiv.

CalganX 8. Sep 2003 13:22

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:
case Key of
  VK_UP: // keine Ahnung wie das heißt
    begin
      // bewege nach oben
    end;
  // usw.
end;
Chris

Matze 8. Sep 2003 13:24

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.

-homer- 8. Sep 2003 13:25

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]

Matze 8. Sep 2003 13:25

Re: Image nach Tastendruck bewegen
 
@Chris: Stimmt, so geht's auch. :mrgreen:

flomei 8. Sep 2003 15:33

Re: Image nach Tastendruck bewegen
 
Danke euch allen!
Ich habe jetzt folgenden Code im OnKeyDown und es funzt super:
Delphi-Quellcode:
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;
MfG Florian :hi:


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