Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi *Help* +Spiel Ping Pong (abprallen vom ball) (https://www.delphipraxis.net/6663-%2Ahelp%2A-spiel-ping-pong-abprallen-vom-ball.html)

Luckie 18. Jul 2003 00:11

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
Na du mußt nicht niur die x-Koordinate abfragen, sondern auch die y-Koordinate. Kuck dir das man an:

Code:

       <---  °

 -
| |
| |
 -
Du mußt eben auch kucken, ob der Ball den Schläger trifft nicht nur, ob er sich links oder rechts davon befinden.

iLLe 18. Jul 2003 00:22

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
ja aber wie mach ich das die y koordinate ändert sich vom edit feld immer und vom ball und ich muss ja ne strecke sozusagen abfragen also das height vom edit feld sozusagen naja irgendwie krieg ich das nicht hin.

iLLe 18. Jul 2003 00:29

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
Zitat:

Zitat von Christian Seehase
Moin Ille,

tut mir leid, aber der Codeschnipsel ist so aus dem Zusammenhang gerissen, dass ich da überhaupt nicht durchblicke.
Wie sind x und y deklariert, wie werden die initalisiert, wodrin ist das Codefragment enthalten (ich vermute Timer Event)?

Vielleicht hilft es Dir weiter, wenn Du mal nach Hier im Forum suchenkollision suchst.
Kollisionserkennung hatten wir schon ein paar Mal.

Ja im Timer Event x und y sind global deklariert und unter form create
-> x=10 & y=5 hoffe das hilft.
bzw. ich hab mal in Schule ne Komponente gemacht gehabt fals ihr das vielleicht gebrauchen könnt könnt ich euch geben als beispiel proggramm oda so.

Christian Seehase 18. Jul 2003 01:26

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
Moin Ille,

ein kleines Beispiel, wie man den Shape zwischen den Edits hin- und herlaufen lassen kann.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Shape1.Top := trunc((Form1.ClientRect.Bottom-Form1.ClientRect.Top-Shape1.Height)/2);
  Shape1.Left := trunc((Form1.ClientRect.Right-Form1.ClientRect.Left-Shape1.Width)/2);
  Edit1.Left := trunc((Form1.ClientRect.Right-Form1.ClientRect.Left-Edit1.Width)/2);
  Edit2.Left := Edit1.Left;
  Edit1.Top  := 0;
  Edit2.Top  := Form1.ClientRect.Bottom-Edit2.Height;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  try
    if fUp then begin
      if Shape1.Top > Edit1.Height then begin
        Shape1.Top := Shape1.Top-3;
      end else begin
        if ((Shape1.Left+trunc(Shape1.Width/2)) >= Edit1.Left) and
           ((Shape1.Left+trunc(Shape1.Width/2)) <= (Edit1.Left+Edit1.Width)) then begin
          fUp := not fUp;
        end else begin
          Shape1.Visible := false;
        end;
      end;
    end else begin
      if (Shape1.Top+Shape1.Height) < Edit2.Top then begin
        Shape1.Top := Shape1.Top +3;
      end else begin
        if ((Shape1.Left+trunc(Shape1.Width/2)) >= Edit2.Left) and
           ((Shape1.Left+trunc(Shape1.Width/2)) <= (Edit2.Left+Edit2.Width)) then begin
          fUp := not fUp;
        end else begin
          Shape1.Visible := false;
        end;
      end;
    end;
  finally
    Timer1.Enabled := true;
  end;
end;
Die Edits sind oben und unten. Die Edits werden horizontal zentriert, der Shape inner halb das Formulares.

[EDIT]
fUp ist eine globale boolean Variable. Vorbesetzt mit true;
[/EDIT]

iLLe 18. Jul 2003 02:53

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
Ich hab meine schläger links und rechts nicht oben und unten und die bewegen sich ja die ganze zeit deshalb weiss ich nicht wie ich das machen soll ich hab ja nie nen festen wert :(

iLLe 18. Jul 2003 03:22

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
naja ich kriegs nicht hin :( diesmal gehe ich wirklich pennen :P

iLLe 18. Jul 2003 12:21

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
so bin wieder wach wie ich sehe noch kein weiterer vorschlag :( ich erinnere mich daran das wirs mal in der schule gemacht hatten aber wie weiss sich nicht mehr :(

Daniel B 18. Jul 2003 12:22

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
Hallo,

vielleicht ist das etwas leichter für Dich zum verstehen.
http://www.delphipraxis.net/viewtopic.php?t=2886

Grüsse, Daniel :hi:

iLLe 18. Jul 2003 12:50

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
das kenne ich schon mein problem ist einfach das sich das edit feld immer bewegt und sich sein top immer verändert und ich nicht richtig weiss wie ich die y-koordinate abfragen soll.

Christian Seehase 18. Jul 2003 12:57

Re: *Help* +Spiel Ping Pong (abprallen vom ball)
 
Moin Ille,

wenn Du als Oberkante Edit1.Top nimmst sollte das aber gehen.
Wenn sich die Position des Edits ändert, ändert sich auch Top.

In meinem Beispiel müsste man "nur" Eigenschaften (Top,Left,Width usw.) gegen die entsprechenden für die Links/Rechts Bewegung austauschen.
Aus Shape1.Top müsste also z.b. Shape1.Left werden.

[EDIT]
Voraussetzungen
Edit1 ist links, Edit2 rechts
Im Beispiel ist Edit1 oben, Edit2 unten
[/EDIT]


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

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