![]() |
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.<--- ° - | | | | - |
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.
|
Re: *Help* +Spiel Ping Pong (abprallen vom ball)
Zitat:
-> 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. |
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:
Die Edits sind oben und unten. Die Edits werden horizontal zentriert, der Shape inner halb das Formulares.
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; [EDIT] fUp ist eine globale boolean Variable. Vorbesetzt mit true; [/EDIT] |
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 :(
|
Re: *Help* +Spiel Ping Pong (abprallen vom ball)
naja ich kriegs nicht hin :( diesmal gehe ich wirklich pennen :P
|
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 :(
|
Re: *Help* +Spiel Ping Pong (abprallen vom ball)
Hallo,
vielleicht ist das etwas leichter für Dich zum verstehen. ![]() Grüsse, Daniel :hi: |
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.
|
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. |
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