AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenGL Ballkollision bei Pong
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL Ballkollision bei Pong

Ein Thema von acidrain · begonnen am 26. Mär 2012 · letzter Beitrag vom 26. Mär 2012
Antwort Antwort
acidrain

Registriert seit: 18. Mär 2012
17 Beiträge
 
#1

OpenGL Ballkollision bei Pong

  Alt 26. Mär 2012, 17:22
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:
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;
Ich hoffe, dass mein Code für euch verständlich ist.
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

Geändert von acidrain (26. Mär 2012 um 17:25 Uhr)
  Mit Zitat antworten Zitat
FlatIron

Registriert seit: 22. Mär 2012
13 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: OpenGL Ballkollision bei Pong

  Alt 26. Mär 2012, 17:41
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. http://oberprima.com/mathematik/

Viel Spaß
Das bügeln wir schon aus
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: OpenGL Ballkollision bei Pong

  Alt 26. Mär 2012, 17:55
Kleine Anmerkung: wenn by<=20 ist, dann trifft der Ball die obere Bande, die untere trifft er bei by>=-12.
nehmen wir einmal an by sei -11 dann trifft der Ball die obere Bande und gleichzeitig die untere
da stimmt irgendetwas nicht!


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
acidrain

Registriert seit: 18. Mär 2012
17 Beiträge
 
#4

AW: OpenGL Ballkollision bei Pong

  Alt 26. Mär 2012, 18:02
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

Geändert von acidrain (26. Mär 2012 um 18:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz