Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Kollisionstest mit GLScene schlägt fehl... (https://www.delphipraxis.net/125463-kollisionstest-mit-glscene-schlaegt-fehl.html)

Teekeks 6. Dez 2008 13:37


Kollisionstest mit GLScene schlägt fehl...
 
Hi!
Ich programmiere momentan ein kleines 3D-Spiel mit GLScene.
Ich habe ein Problem mit
Delphi-Quellcode:
CollisionManager1.Checkcollisions;
dort tuhe ich folgendes:
Delphi-Quellcode:
procedure TForm1.CollisionManager1Collision(Sender: TObject; object1,
  object2: TGLBaseSceneObject);
begin
  if ((Object1.Name='GLCube1') or (Object2.Name='GLCube1')) then
    gut:=false
  else gut:=true;
end;
aber irgentwie scheint mir als würde
Delphi-Quellcode:
CollisionManager1.Checkcollisions;
garnicht aufgerufen werden...

zuweisen tu ich das folgendermaßen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var col:tglbcollision;
begin
  col:=tglbcollision.Create(GLCube1.Behaviours);
  col.BoundingMode:=cbmCube;
  col.Manager:=CollisionManager1;
  col.Name:='Collision';
  GLCube1.Behaviours.Add(col);
// ab hier unwichtig
//also: ...
end;
Ich habe keinerlei ahnung was hier nicht hinhaut...

[edit] hatte mich verschrieben...

turboPASCAL 7. Dez 2008 05:45

Re: Kollisionstest mit GLScene schlägt fehl...
 
Was mir sofort ins Auge fällt:

Delphi-Quellcode:
if ((Object1.Name='GLCube1') or (Object2.Name='GLCube1')) then
GLCube1 collidiiert mit sich selbet ? Und dann auch noch als "or" ?


Man würde doch sagen, collidiieren Objekt1 und Objekt2 ?
Also:
Delphi-Quellcode:
if ((Object1.Name='GLCube1') and (Object2.Name='GLCube2')) then

Teekeks 7. Dez 2008 06:49

Re: Kollisionstest mit GLScene schlägt fehl...
 
Naja mir gehts mit
Delphi-Quellcode:
if ((Object1.Name='GLCube1') or (Object2.Name='GLCube1')) then
eigentlich nur darum ob einer der Kollidierenden Körper GLCube1 ist oder nicht.
Und eigentlich könnte ja dieser GLCube1 genausogut in Object1 wie in Object2 sein...
Oder habe ich einen Denkfehler?

aber schonmahl danke fürs bemühen...

gruß Teekeks

turboPASCAL 7. Dez 2008 07:34

Re: Kollisionstest mit GLScene schlägt fehl...
 
Zitat:

Oder habe ich einen Denkfehler?
Nein, den hatte ich. ;)

Das OR nicht falsch wie von mir Behaupted.


Hast du den CollisionManager in OnProgress vom GLCadencer eingetragen ?

Delphi-Quellcode:
procedure TFormX.GLCadencerXProgress(Sender: TObject; const deltaTime,
  newTime: Double);
begin
  CollisionManagerX.CheckCollisions;
end;

Teekeks 7. Dez 2008 07:40

Re: Kollisionstest mit GLScene schlägt fehl...
 
ich habs jetz auch nochmahl mit deiner variante ausprobiert... der Körper Cube geht ganz sauber durch den anderen durch → Schlecht!
Ich hab auch eher den verdacht das der... dam! sag mal, der 2.Cube muss doch bestimmt auch von dem CollisionManager gesteuert werden... probiere ich gleich mal aus...

Teekeks 7. Dez 2008 07:44

Re: Kollisionstest mit GLScene schlägt fehl...
 
hmmm, geht immernoch glatt durch.
jetzt habe ich das so gelößt:
Delphi-Quellcode:
procedure TForm1.CollisionManager1Collision(Sender: TObject; object1,
  object2: TGLBaseSceneObject);
begin
  if ((Object1.Name='GLCube1') and (Object2.Name='GLCube2')) or ((Object1.Name='GLCube2') and (Object2.Name='GLCube1')) then
    gut:=false
  else gut:=true;
end;

turboPASCAL 7. Dez 2008 07:50

Re: Kollisionstest mit GLScene schlägt fehl...
 
Man kann auch seine Beiträge editieren! ;)

Ich habe es mal gemacht, siehe Post #4.

Teekeks 7. Dez 2008 08:01

Re: Kollisionstest mit GLScene schlägt fehl...
 
hmm, stimmt kann man machen, ist aber jetzt zuspät... :P aber für die Zukunft.

und: Ja ich habe es in den Cadencer eingetragen.

turboPASCAL 7. Dez 2008 08:03

Re: Kollisionstest mit GLScene schlägt fehl...
 
Häng es mal an, nun will ichs wissen was fehlt...

Teekeks 7. Dez 2008 08:15

Re: Kollisionstest mit GLScene schlägt fehl...
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier bitte, ist aber ja für Lazarus...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.
Seite 1 von 2  1 2      

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