Kollision funktioniert nicht

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Jean

Betreff: Kollision funktioniert nicht

BeitragDo, Jul 17, 2008 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach

Da ich neu in B3D bin, versuche ich gerade ein kleines Pong zu schreiben. Nur leider funktioniert die Kollision nicht. Genauer gesagt wird mir von CountCollisions immer eine 0 zurückgegeben, auch wenn eine Kollision stattfindet.

Hier mal mein Code:
Code: [AUSKLAPPEN]

Graphics3D 800,600
SetBuffer BackBuffer()

Global camera = CreateCamera() ;Camera
CameraViewport camera,0,0,GraphicsWidth(),GraphicsHeight()
PositionEntity camera, 5.41964,6.22303,14.2646
TurnEntity camera, 52.5135,123.76,-33.5183

Global spielfeld=CreateCube () ; Spielfeld
PositionEntity spielfeld,0,0,10
ScaleMesh spielfeld, 5, 0.05, 5

Global rahmen_links=CreateCube () ;Linker Rahmen
PositionEntity rahmen_links,-0.1,0.15,5.1
ScaleMesh rahmen_links, 4.9, 0.2, 0.1

Global rahmen_rechts=CreateCube () ;Rechter Rahmen
PositionEntity rahmen_rechts,-0.1,0.15,14.9
ScaleMesh rahmen_rechts, 4.9, 0.2, 0.1

Global rahmen_oben=CreateCube () ;Oben Rahmen
PositionEntity rahmen_oben,-4.9,0.15,10
ScaleMesh rahmen_oben, 0.1, 0.2, 4.8

Global spieler=CreateCube () ;Spieler
PositionEntity spieler,4.9,0.15,10
ScaleMesh spieler, 0.1, 0.2, 0.75

Global kugel=CreateSphere (16) ;Kugel
EntityType kugel,2
PositionEntity kugel,2,0.25,10
ScaleMesh kugel, 0.2, 0.2, 0.2

brush_rahmen=CreateBrush (0,0,100)
PaintEntity rahmen_links, brush_rahmen
PaintEntity rahmen_rechts, brush_rahmen
PaintEntity rahmen_oben, brush_rahmen

brush_spielfeld=CreateBrush (0,100,0)
PaintEntity spielfeld, brush_spielfeld

brush_spieler=CreateBrush (255,255,255)
PaintEntity spieler, brush_spieler
PaintEntity kugel, brush_spieler


While Not KeyHit(1)
   If KeyDown(32) Then MoveEntity spieler,0,0,0.1 ;Spieler verschieben (A & D)
   If KeyDown(30) Then MoveEntity spieler,0,0,-0.1
   
   If EntityZ# (spieler) > 14.25 Then PositionEntity spieler, 4.9, 0.15, 14.25
   If EntityZ# (spieler) < 5.75 Then PositionEntity spieler, 4.9, 0.15, 5.75
   
   If KeyDown(205) Then MoveEntity kugel,0,0,0.1 ;Kugel verschieben (Pfeiltasten)
   If KeyDown(203) Then MoveEntity kugel,0,0,-0.1
   
   If KeyDown(208) Then MoveEntity kugel,0.1,0,0
   If KeyDown(200) Then MoveEntity kugel,-0.1,0,0
   
   
   UpdateWorld
   RenderWorld
   
   c = CountCollisions (kugel) ;Kollision
   Text 0,0,"Kollisionen: " + c
   
   For n=1 To c
      Text 20, n*20+20, CollisionEntity (kugel, n)
   Next
   
   Flip
Wend

End


Ich bin dankbar für jeden Hinweis!

THX Jan

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Jul 17, 2008 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Einmal EntityType an das Zielobjekt anwenden und dann ein Collisions verwenden.

Dazu dann die Beispielcodes ausprobieren.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Jean

BeitragDo, Jul 17, 2008 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, hat funktioniert!

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group