Collisionsbug! komisch?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

#Reaper

Newsposter

Betreff: Collisionsbug! komisch?

BeitragMi, Feb 23, 2005 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!


Ich habe etwas programmiert...dort fliegt man mit nem kleinem "ufo" (einfach ne gepresste kugel^^) in einer größeren kugel rum...

nur.. es ging immer.. aber wenn ich die ganze zeit lang am rang entlang fliege, "brallt" es immer ab.. also slidet... aber an einer stelle, macht es das nicht, und ich, also das ufo..^^ is durch die eine kugel durch!

ich versteh net wieso.. o_O


hier, ein teil des codes:

Code: [AUSKLAPPEN]
SetBuffer BackBuffer()

type_character=1
type_scenery=2



;Camera-Verfolgung
camera1 = CreateCamera()
CameraViewport camera1,0,0,x,y
CameraRange camera1,0.1,10000
PositionEntity camera1,0,10,-40
TurnEntity camera1,10,0,0

;Camera-Uebersicht
cameraUsicht =CreateCamera()
CameraViewport cameraUsicht,2,2,150,150
CameraRange cameraUsicht,0.1,10000
PositionEntity cameraUsicht,0,2500,0
TurnEntity cameraUsicht,90,0,0


;Light 1
light1 = CreateLight()
RotateEntity light1,90,0,0
PositionEntity light1,0,0,1250

;Light 2
light2 = CreateLight()
PositionEntity light2,0,0,-2500


;Sphere / Uni
uni = CreateSphere(32)
ScaleEntity uni,5000,5000,5000
FlipMesh uni
EntityType uni,type_scenery
uni_tex = LoadTexture("media/images/stars.png")
brush=CreateBrush()
BrushTexture brush,uni_tex
PaintMesh uni,brush
EntityFX uni,1



;SpaceShip
spaceship = CreateSphere(8)
ScaleMesh spaceship,10,5,10
EntityRadius spaceship,11
EntityType spaceship,type_character

EntityParent camera1,spaceship,1



 
While Not KeyHit(1)

moveX=0
moveY=0
moveZ=0

turnP=0
turnY=0
turnR=0


If KeyDown(keyvor)=True Then moveZ=15

If KeyDown(Keyzurueck)=True Then moveZ=-15


If KeyDown(keyleft)=True Then turnY=1

If KeyDown(keyright)=True Then turnY=-1


If KeyDown(keyup)=True Then turnP=-1

If KeyDown(KeyDownn)=True Then turnP=1


MoveEntity spaceship,moveX,moveY,moveZ
TurnEntity spaceship,turnP,turnY,turnR



If KeyHit(57)=True Then
If WireFrameVar = 0 Then
   WireFrame 0
   WireFrameVar = WireFrameVar+1
ElseIf WireFrameVar = 1 Then
   WireFrame 1
   WireFrameVar = 0
EndIf
EndIf



Collisions type_character,type_scenery,2,2



UpdateWorld
RenderWorld


;Uebersichs-Camera Rahmen
Color 0,0,150
Rect 1,1,151,151,0


Flip
 
Wend
End



is irgendwie blöd.. sonst gibts nachher noch bugusing..^^


MfG
#Reaper
 

Klaas

BeitragMi, Feb 23, 2005 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei deinem Proggy seh ich irgendwie nurn schwarzen Bildschirm.

Diese Durchdringungen passieren durch Berechnungsfehler bei sehr kleinen Abständen. Lösen kannst du das indem du wenn eine Kollision passiert das Objekt ein stück weg vom anderen bewegst, also dein UFO ein kleines Stück weg von der Kugel setzt.

So in etwa ... translateEntity(ufo,CollisionNX,CollisionNY,CollisionNZ)

ich habs nicht ausprobiert ... mag sein das ich mich inrgendwo geirrt habe
 

#Reaper

Newsposter

BeitragDo, Feb 24, 2005 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ne....sry.. klappt auch nicht.. Sad

Crying or Very sad



Smile

MfG
#Reaper
 

#Reaper

Newsposter

BeitragFr, Feb 25, 2005 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ok.. jetzt scheints zugehen..
habe den radius von spaceship auf 150 gestellt.. bei 100 oder drunter?, gings net..

mal schauen..^^

MfG
#Reaper

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group