![]() |
Pong Abprall des Balles
Hallo
Habe Gestern begonnen ein Pong zu schreiben siehe dazu hier: ![]() Geschafft habe ich: -Spielerbewegung (derzeit synchron (mit keydown)) -Abprall an den Rändern Nun möchte ich gern dass der Ball auch vom Spieler (Shape) reflektiert wird. Spieler=Shape7 Ball=Shape5 Zur Überlegung: (Ball nähert sich der rechten Seite) i)x-Koordinate Ball<=Spieler Also: Shape5.left<Shape7.Left (Bzw genauer :) (Shape5.left+Shape5.Heigth)<Shape7.Left ii) y-Koordinate oben<=Ball<=unten Also: a.)Shape7.Top<=Shape5.Top b.)Shape5.Top<=(Shape7.Top+SHape7.Heigth) (bzw. genauer:) a)Shape7.Top<=(Shape5.Top+Shape5.Width) b.)(Shape5.Top+Shape5.Heigth+Shape5.Width)<=(Shape 7.Top+Shape7.Heigth) =>(einfache Version) IF ((Shape5.left<Shape7.Left) AND (Shape5.Top=>Shape7.Top) AND (Shape5.Top<=(Shape7.Top+SHape7.Heigth))) THEN dx:=-dx; //Abprall Nur Leider fliegt mein Ball dann durch den Schläger -> Wandberührung GameOver (Die Spielabbruchsbediengung werte ich in einer separaten IF-Anw aus und die Schläger bewege ich über KeyDown) Habe auch schon probiert alle Relationszeichen zu drehen, dann müsste er ja reflektiert werden, wenn der Schläger nicht da ist, aber dies klappt auch nicht. Lg |
Re: Pong Abprall des Balles
Also wenn der Ball nach rechts fliegt ist der erste Teil
Delphi-Quellcode:
immer true
(Shape5.left<Shape7.Left)
Schau da doch ob der Ball mit dem rechten Punkt
Delphi-Quellcode:
ist sprich ob er die Linie des Schlägers überschritten hat.
(Shape5.left+Shape5.Width)>Shape7.Left
So sonst seh ich i-wie kein Fehler in der if-Anweisung oder bin ich blind? :gruebel: |
Re: Pong Abprall des Balles
Hallo Draos, Danke für deine schnelle Antwort.
Kann das leider immo nicht ausprobieren, werde es aber später nachholen, hacke dann gegebenenfalls morgen ab. Klingt auch ziemlich ein leuchtend stand ich mal wieder auf dem Schlauch :mrgreen: Lg //Edit: Mmh mir fällt gerade auf das dann ja der Ball reflektiert werden müsste wenn er sich in dem Intervall (oben- unten) des Spielers (Shapes) befindet und das ist bisher auch nicht der Fall. Naja werde es einfach mal testen... :) |
Re: Pong Abprall des Balles
Ich weiß deswegen überleg ich ja noch die ganze Zeit. Eigentlich dürfte er sich immer nur hin- und herbewegen.
Vllt an anderer Stelle des Progs nen Fehler? |
Re: Pong Abprall des Balles
Hallo noch mal, Danke das du dich damit beschäftigst.
Vorher hat alles "eigentlich" funktioniert. Baue das Programm peu à peu auf: -Anfang war Ball bleibt im Viereck -Schlägerbewegung -Ball prallt oben/ unten ab sowie link/rechts Spiel vorbei -> Hier sollte nun der Abprall folgen :D Werde es Morgen mal rein stellen, von diesem PC aus ist mir dies leider nicht möglich. schönes Wochenende, obwohl ich natürlich hoffe das du Morgen mal rein schaust :mrgreen: Lg |
Re: Pong Abprall des Balles
Hallo,
habe es jetzt (rechts): (((Shape5.Left+Shape5.Width)>Shape7.Left) AND ((Shape5.Top+Shape5.Hight)>Shape7.Top) AND (Shape5.Top<(Shape7.Top+Shape.Height))) Und so klappt es. Sehe zwar immer noch nicht, warum es nicht wie oben ging, aber HAuptsache es läuft erstmal. :o (Hatte das Shape auch mal in der Mitte, dass nicht zufällig vorher die Spielabbruchbediengung erfüllt wird.) Danke Lg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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