![]() |
Re: Pong-Klon
Zitat:
|
Re: Pong-Klon
War sie auch nicht :mrgreen:
@darty 1. Ja 2. 123-128 3. 130-135 4. Bei dem Gegner prallt der Ball einfach ab (mit Physik) und beim Spieler1 prallt er komischer Weise nicht ab.
Delphi-Quellcode:
//Kollisionserkennung
if ball.Left<0 then begin t.Enabled:= false; ball.Visible:= false; go_p2; end;
Delphi-Quellcode:
if ball.Left>445 then
begin t.Enabled:= false; ball.Visible:= false; go_p1; end; |
Re: Pong-Klon
Zitat:
Zitat:
Zitat:
Mal ehrlich Du hast doch den Code selber geschrieben oder ? Dann erklär es mir doch weil ich das nicht verstehe wo da die Kollisionfragen sein soll in den Zeilen ?? Zitat:
|
Re: Pong-Klon
Zitat:
Ich denke mal das sind die Zeilen der Kollisionsabfrage:
Delphi-Quellcode:
und
if (Abs(ball.Left - enemy.left) <= 5) and (Abs(ball.Top - enemy.Top) <= 5) then xspeed:= -xspeed;
if (ball.top > player1.top -1-toleranz) and (ball.top < player1.top + player1.height +1+toleranz) and (ball.left = player1.left+player1.width) then xspeed := -xspeed;
Delphi-Quellcode:
if ball.Left<0 then xspeed := -xspeed;
if ball.Top<0 then yspeed := -yspeed; if ball.Left>445 then xspeed := -xspeed; if ball.Top>445 then yspeed := -yspeed; |
Re: Pong-Klon
Zitat:
Nun hast Du es verraten aber er kommt jetzt auch nicht weiter :roll: |
Re: Pong-Klon
Physik ist vieleicht das Falsche Wort, ich meine die toleranz.
|
Re: Pong-Klon
Was ist mit Toleranz ? erklär es doch mal näher ..
|
Re: Pong-Klon
Ich hab doch im Quellcode, dass der Ball auch beim Spieler1 abprallen soll ... nur irgendwie funktioniert es nicht (wegen diesem Problem hab' ich das Thema aufgemacht) :gruebel:
Die Toleranz ist die Physik... ok... [edit=Christian Seehase]Beiträge zusammengefasst. Wäre schön, wenn Du die Edit Funktion auch mal benutzen würdest ;-). Danke. Mfg, Christian Seehase[/edit] |
Re: Pong-Klon
Wie war das noch mit der Edit Funktion :mrgreen:
|
Re: Pong-Klon
Ich denke mal, dass das Problem folgendes ist: Du fragst bei der Kollisionskontrolle des Balls einen genauen Pixelwert der "Left"-Eigenschaft ab, welcher aber nie erreicht wird, da du den Ball immer um zwei Pixel bewegst. Ändere daher folgenden Code:
Delphi-Quellcode:
in diesem um:
//Ballkollision
if (Abs(ball.Left - enemy.left) <= 5) and (Abs(ball.Top - enemy.Top) <= 5) then xspeed:= -xspeed; if (ball.top > player1.top -1-toleranz) and (ball.top < player1.top + player1.height +1+toleranz) and (ball.left = player1.left+player1.width) then xspeed := -xspeed;
Delphi-Quellcode:
Die 1 in der Abfrage solltest du vielleicht noch bei Tollerarenz mit unterbringen.
//Ballkollision
if ((ball.Top > enemy.Top - 1 - toleranz) and (ball.Top < enemy.Top + enemy.Height + 1 + toleranz) and (ball.Left <= enemy.Left + enemy.width)) or ((ball.Top > player1.Top - 1 - toleranz) and (ball.Top < player1.Top + player1.Height + 1 + toleranz) and (ball.Left + ball.Width >= player1.Left)) then xspeed := -xspeed; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:32 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