Entwickler-Ecke
Multimedia / Grafik - CollisionManager1.CheckCollisions[Noch nicht gelöst)
mimi - Do 03.07.03 19:58
Titel: CollisionManager1.CheckCollisions[Noch nicht gelöst)
Hallo,
wie funktioniert der CollisionManager von GLScene ?
kann mir das jemmand sagen?
irgenwie geht das nicht. wollte ein brekout schreiben und habe deshalb die CollisionManager komponenten genommen, aber es wird keine colisions ausgelöst.
mimi - Fr 04.07.03 17:00
hier der code den ich dazu verwndet habe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| var newBallPos : TVector; i:Byte; begin
if (not gameOver) and (deltaTime>0) then begin newBallPos:=VectorCombine(Ball.Position.AsVector, ballVector, 1, deltaTime); if newBallPos[0]<-7.05 then ballVector[0]:=-ballVector[0] else if newBallPos[0]>7.05 then ballVector[0]:=-ballVector[0] else if newBallPos[1]>4.55 then ballVector[1]:=-ballVector[1];
end;
if newBallPos[1]<-4 then begin for i:=1 to 3 do begin with TGLCube(FindComponent('Stein' + IntToStr(i))) do begin if (newBallPos[0]>Position.X) and (newBallPos[0]<Position.X) then begin ballVector[1]:=-ballVector[1]; ballVector[0]:=ballVector[0]+(Random(100)-50)/50; ballVector[1]:=ballVector[1]+0.1; ShowMessage('TEST'); gameOver:=True; end; end; end;
if (newBallPos[0]>Pad.Position.X-1.25) and (newBallPos[0]<Pad.Position.X+1.25) then begin ballVector[1]:=-ballVector[1]; ballVector[0]:=ballVector[0]+(Random(100)-50)/50; ballVector[1]:=ballVector[1]+0.1; Inc(score); SpaceText1.Text:=Format('%.3d', [score]); end else begin gameOver:=True; ResetGame; end; end;
CollisionManager1.CheckCollisions; with Ball.Position do AsVector:=VectorCombine(AsVector, ballVector, 1, deltaTime); |
habe das beispiel pong genommen und will draus jetzt ein breakOut clone bauen.
und im onColisiosn ereignis habe ich einfach nur stehen
ShowMessage('TEST');
Nightmare_82 - Fr 04.07.03 18:28
Also die procedure CheckCollisions funktioniert mit Siherheit. Ich tippe mal, daß es aussieht als gäbe es eine Kollision, aber die Objekte stehen in Wirklichkeit hintereinander ohne sich zu berühren.
Stell mal zum Test 2 Objekte auf dieselbe Position. Wenn dann die Message kommt liegts wohl an den Koordinaten.
mimi - Fr 04.07.03 19:04
soll ich dir mal das ganze projekt senden ?
vileicht findes du den fehler.
Nightmare_82 - Sa 05.07.03 01:28
ok, kannste machen.
mimi - Sa 05.07.03 12:20
kannst mir eine pm senden mit deiner mail ?
mimi - Sa 05.07.03 16:13
problem gelöst....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!