Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi GL_Scene Pong spiel mit Zylindern (collision???) (https://www.delphipraxis.net/91509-gl_scene-pong-spiel-mit-zylindern-collision.html)

Neutron 6. Mai 2007 11:56


GL_Scene Pong spiel mit Zylindern (collision???)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi! :-D
Ich hab jetzt ein Pong spiel etwas geändert... und zwar hab ich den "Balken" zu einem Zylinder gemacht... und der Ball ist jetzt ein Puck!

Das blöde ist nur das jetzt gar nichts mehr richtig funktioniert und ich selbst kann mir auch nicht weiter helfen! :cry:

Ich hab euch hier die exe Datei hochgeladen damit ihr selbst sehen könnt was ich meine! Dazu muss ich sagen, dass in der Version die ich euch jetzt gebe nichts funktioniert außer die Collisions Sache!

Der quelltext des Collisionsmanager ist:

Delphi-Quellcode:
procedure TForm1.CollisionManager1Collision(Sender: TObject; object1,
object2: TGLBaseSceneObject);
begin

if ((object1.Name='GLCylinder4') or (object2.Name='GLCylinder4')) then begin
if refelectball = false then begin
ballVector[1]:=-ballVector[1];
ballVector[0]:=ballVector[0];
GLCylinder3.Position.X := GLCylinder3.Position.X + 0.4;
refelectball := true;
end;
end;

if ((object1.Name <>'GLCylinder4') or (object2.Name <>'GLCylinder4')) then begin
refelectBall:=False;
end;
end;
Wobei GLCylinder4 der "Balken" und GLCylinder3 der "Puck" ist!

Mein Problem ist nun: Ich will den Abprall besser haben! Ich hoffe auf eure Vorschläge oder Code schnipsel!

Danke schonmal!! :-D

Die Muhkuh 6. Mai 2007 12:47

Re: GL_Scene Pong spiel mit Zylindern (collision???)
 
Zitat:

Zitat von Neutron
Delphi-Quellcode:
procedure TForm1.CollisionManager1Collision(Sender: TObject; object1,
object2: TGLBaseSceneObject);
begin

if ((object1.Name='GLCylinder4') or (object2.Name='GLCylinder4')) then begin
if refelectball = false then begin
ballVector[1]:=-ballVector[1];
ballVector[0]:=ballVector[0];
GLCylinder3.Position.X := GLCylinder3.Position.X + 0.4; // # Markiert #
refelectball := true;
end;
end;

if ((object1.Name <>'GLCylinder4') or (object2.Name <>'GLCylinder4')) then begin
refelectBall:=False;
end;
end;

Für mich sieht es so aus, als gehört die markierte Zeile nicht dahin.

Neutron 6. Mai 2007 15:13

Re: GL_Scene Pong spiel mit Zylindern (collision???)
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK... ich hab die makierte Zeile jetzt entfernt!

Neues Problem:
Der "Balken" geht nun durch den Puck durch...

Folge Problem:
Der Puck bleibt manchmal an ihm kleben oder weiß nicht mehr wo er hin soll! :(

Delphi-Quellcode:
procedure TForm1.CollisionManager1Collision(Sender: TObject; object1,
  object2: TGLBaseSceneObject);
begin

if ((object1.Name='GLCylinder4') or (object2.Name='GLCylinder4')) then begin
if refelectball = false then begin
ballVector[1]:=-ballVector[1];
ballVector[0]:=ballVector[0];
refelectball := true;
end;
end;


if ((object1.Name <>'GLCylinder4') or (object2.Name <>'GLCylinder4')) then begin
   refelectBall:=False;
 end;
end;
Hier nochmal zum angucken!

Neutron 16. Mai 2007 14:17

Re: GL_Scene Pong spiel mit Zylindern (collision???)
 
So, da mir scheinbar keiner Antwortet :cry: hab ich jetzt versucht
selbst heraus zu finden was sich machen lässt...

Ich glaube es liegt einfach daran, das der Collisionsmanager nich so das wahre is...
Es gibt doch noch was anderes das Octree heißt aber was is das und wie kann ich
das nutzen und einbauen? :gruebel:

Kann mir diesmal jemand helfen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 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