Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wände im Spiel (https://www.delphipraxis.net/149936-waende-im-spiel.html)

Meistermg 3. Apr 2010 09:57

Re: Wände im Spiel
 
Also zum Beispiel:
If shape1.top = panel1.top then ????

Und bei ???? liegt mein Problem.
Wie kann ich nun verhindern, dass sich shape1 beim drücken einer der Pfeiltasten weiter bewegt?

aurikel_Max 3. Apr 2010 10:16

Re: Wände im Spiel
 
Zitat:

Zitat von Meistermg
Also zum Beispiel:
If shape1.top = panel1.top then ????

Und bei ???? liegt mein Problem.
Wie kann ich nun verhindern, dass sich shape1 beim drücken einer der Pfeiltasten weiter bewegt?

Entweder setzt du jetzt dein Shape ein Stück zurück oder du verhinderst einfach, dass beim Drücken der Pfeiltaste nach oben nichts mehr passiert:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case Key of
...
    VK_UP: begin
      IF not Shape1.top -5 = panel1.top then
      shape1.Top := shape1.Top - 5;
    end;
...
  end;
end;
Ich hoffe, dass ist jetzt richtig, denn ich bin selbst noch nicht so fit in Delphi. ;)

Gruß und frohe Ostern.

Lumpiluk 3. Apr 2010 11:12

Re: Wände im Spiel
 
Zitat:

Zitat von aurikel_Max
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
case Key of
...
    VK_UP: begin
      IF not Shape1.top -5 = panel1.top then
      shape1.Top := shape1.Top - 5;
    end;
...
  end;
end;

Statt "IF not Shape1.top -5 = panel1.top then" würde ich
Delphi-Quellcode:
if Shape1.top -5 < 0 then
benutzen.
Erstmal ist nämlich die Position des Panels für das, was darin ist, unwichtig (0 ist ganz oben; bei der Form wäre es genauso). Ausserdem könnte die Anfangsposition des Shapes auch auf einer Y-Position sein, die nicht durch 5 teilbar ist und dann würde es wieder durch die Wand gehen, weil nicht genau 0 erreicht wird.
Für rechts und unten verwendest du dann panel1.width, panel1.height (Tipp: Du musst die Ausmaße des Shapes mit einbeziehen ;) )

Meistermg 3. Apr 2010 11:19

Re: Wände im Spiel
 
Danke an alle und frohe Ostern
:D


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr.
Seite 2 von 2     12   

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