![]() |
OpenGL Ballkollision bei Pong
Guten Tag liebe Community,
ich bräuchte eure Hilfe bei meinem Ballkollisionsproblem. Ich hab viele Theorien aufgestellt, wie ich den Verlauf des Balles in x/y-Richtung (abhängig vom Gegenstand, auf den der Ball aufprallt) umkehren kann. bx und by sind bei diesem Beispiel auch die jeweiligen Koordinaten des Balles, an denen er sich zum genauen Zeitpunkt befindet. Ich denke auch, dass es bei mir eher ein mathematisches Problem ist, als ein Problem mit Delphi/OpenGL.
Code:
Ich hoffe, dass mein Code für euch verständlich ist.
procedure TForm1.Ball;
var k1,k2,bx,by: extended; begin if (by<=20) and (by>=-12) and (bx>=-30.5) and (bx<=30.5) then begin by:=by+0.005; k1:=bx-0.005; k2:=by-0.005; bx:=bx+0.005; end else if by>=20 then begin by:=k2; end; if by>=20 then by:=k2; glPushMatrix(); glTranslatef(0, 0, -50); glTranslated(bx, by, 0); glBegin(GL_QUADS); glColor3f(0, 1, 0); glVertex3f(-1,1,-1); glColor3f(0, 1, 0); glVertex3f(-1,-1,-1); glColor3f(0, 1, 0); glVertex3f(1,-1,-1); glColor3f(0, 1, 0); glVertex3f(1,1,-1); glEnd; glPopMatrix(); end; Kleine Anmerkung: wenn by<=20 ist, dann trifft der Ball die obere Bande, die untere trifft er bei by>=-12. bx<=30.5 ist das Auftreffen beim rechten Schläger und bx>=-30.5 das Auftreffen beim Linken. EDIT: Da bx und by unbekannt sind, muss ich auf die jeweils kommen um immer 0.005 davon subtrahieren zu können und somit die Richtung umkehren kann. Da kommt wohl Mathematik infrage, die ich nicht sehr gut beherrsche. Vielen Dank für eure Hilfe. MfG, acidrain |
AW: OpenGL Ballkollision bei Pong
Hast du dir auf DelphiGL die Anleitungen zur Kollision durchgelesen?
Empfehle ich dir dringend. Das was du da machst ergibt für mich keinen Sinn? Du musst die Bewegungsrichtung des Balls entlang der Koordinatenachsen nachhaltig verändern. Hier bietet es sich an die Eigenschaften des Balls in einer Klasse zu kapseln. Sprich Orts- und Bewegungsvektor. Wenn du feststellst, dass der Ball "auftrifft", dann musst du deinen Bewegungsvektor dementsprechend manipulieren. Tutorial zur Analytischen Geometrie findest du auch auf der Seite von DelphiGL oder auf Oberprima. ![]() Viel Spaß ;) |
AW: OpenGL Ballkollision bei Pong
Zitat:
da stimmt irgendetwas nicht! Gruß K-H |
AW: OpenGL Ballkollision bei Pong
Tut mir Leid, ich hab mich verschrieben, wenn by=20 bzw. -12 ist, dann trifft er die Banden.
Zudem hab ich mich auch bei den größer/kleiner Zeichen vertan, natürlich müssen, diese bei beiden umgetauscht werden! In der Prozedur hab ich's ja richtig angegeben, in welchem Bereich der Ball sich bewegen kann. EDIT: Außerdem sind das rohe Gedankengänge die ich derzeit in der Prozedur hab und hoffe auf eine kleine Hilfeleistung. Die Tutorials haben mich nicht unbedingt weitergebracht |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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