Delphi-PRAXiS

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...

turboPASCAL 7. Dez 2008 08:18

Re: Kollisionstest mit GLScene schlägt fehl...
 
Kann man alles bekommen, sonst mag ich nicht debuggen. ;)

Teekeks 7. Dez 2008 08:26

Re: Kollisionstest mit GLScene schlägt fehl...
 
das ist bis jetzt alles. auser der ausfürgaren datei und die war etwas zu gruß zum mitschicken.
ich sagte ja das es ein (noch sehr) kleines Spiel ist/wird.

turboPASCAL 7. Dez 2008 08:30

Re: Kollisionstest mit GLScene schlägt fehl...
 
Hätte gern die *.dpr und die Form dazu, die Bilder's brauch ich nicht.
Ich kann sonst nicht den Debugger anwerfen denn ich werde nicht di efehlenden Teile dazubauen. ;)
Zur Not auch per PN.

Teekeks 7. Dez 2008 08:36

Re: Kollisionstest mit GLScene schlägt fehl...
 
Ich sagte bereits, das ist ein Programm welches mit Lazarus geschrieben wurde und somit ist die datei die du suchst die mit .lpr ...

turboPASCAL 7. Dez 2008 08:45

Re: Kollisionstest mit GLScene schlägt fehl...
 
Entschuldige, ich hatte nur die Unit1.pas im Explorer stehen. Warum auch immer... alle Dateien sind da und es kann los gehen.
:wall:

Teekeks 7. Dez 2008 08:47

Re: Kollisionstest mit GLScene schlägt fehl...
 
ok, findest du irgentetwas?

turboPASCAL 7. Dez 2008 09:19

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

a)

Code:
procedure TForm1.FormCreate(Sender: TObject);
var
  col, col2: tglbcollision;
begin
  col := tglbcollision.Create(GLCube1.Behaviours);
  col.BoundingMode := cbmCube;
  col.Manager := CollisionManager1;
  col.Name := 'Collision';
  GLCube1.Behaviours.Add(col);

  col2 := tglbcollision.Create(GLCube2.Behaviours);
  col2.BoundingMode := cbmCube;
  col2.Manager := CollisionManager1;
  col2.Name := 'Collision';
  [b]GLCube2[/b].Behaviours.Add(col2);
b)
Im GLSceneEditor bei Cube2 im Behaviours die Collision rausschmeissen.

c)
Die Timer kannst du weg lassen, mach es mit dem Cadencer.

Teekeks 9. Dez 2008 14:56

Re: Kollisionstest mit GLScene schlägt fehl...
 
Danke. jetzt fukt alles ^^
Ich bin nur bis gerade eben nicht zum Proggen gekommen...

gruß Teekeks


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