Kollision Kamera - Objekt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Duke Nukem

Betreff: Kollision Kamera - Objekt

BeitragMo, Nov 01, 2004 6:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin bestimmt der n-te, der diese frage hat, aber ich raffs einfach nicht.
hab mich stundenlang durch foren, tutorien und hilfen gequät, und mein code sieht (für mich zumindest) aus wie in den beispielen - und die laufen alle.
wie kann ich den spieler mit dem planeten kollidieren lassen? ich dacht zuerst, ich könnte der kamera keinen entityradius geben, aber das schiff (hier die kleine kugel) wil auch net kollidieren.. könnte jemand bitte die entscheidende zeile einfügen, nach der ich suche?

und hats ne auswirkung, wenn collisions in der hauptschlaife steht? ich hab beispiele gesehen, wo es in einem davor und in dem anderen da drin stand, und die liefen beide gleich.

Code: [AUSKLAPPEN]
Graphics3D 1024, 768, 32, 1
SetBuffer BackBuffer()


Const SchiffType=1, PlanetType=2

schiff=CreateSphere(8)
EntityType schiff, SchiffType
EntityRadius schiff, .1
ScaleEntity schiff, .1,.1,.1

camera=CreateCamera(schiff)
light=CreateLight(2)


MoveEntity Camera, 0,0,-5
PointEntity camera, schiff
MoveEntity Camera, 0,2,0

MoveEntity schiff, 0,0,-20




Erde = CreateSphere(16)
EntityType Erde, PlanetType
EntityRadius Erde, 1
Erdtex=LoadTexture("E.bmp")
EntityTexture erde, Erdtex


Collisions PlanetType,SchiffType,1,2

While Not KeyDown(1)




      If KeyDown(200) Then
          MoveEntity schiff,0,0,.1
      EndIf

      If KeyDown(208) Then
          MoveEntity schiff,0,0,-.1
      EndIf

      If KeyDown(203) Then
          MoveEntity schiff,-.1,0,0
      EndIf

      If KeyDown(205) Then
          MoveEntity schiff,.1,0,0
      EndIf

      If KeyDown(30) Then
          MoveEntity schiff,0,.1,0
      EndIf

      If KeyDown(44) Then
          MoveEntity schiff,0,-.1,0
      EndIf

      If KeyDown(57) Then
          PointEntity schiff, Erde
     EndIf



      mxspd=MouseXSpeed()*0.5
      myspd=MouseYSpeed()*0.5
      MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
      campitch=campitch+myspd
      camyaw=camyaw-mxspd
      If campitch<-89 Then campitch=-89
      If campitch>89 Then campitch=89
      RotateEntity schiff,campitch,camyaw,0



  UpdateWorld()
  RenderWorld()

  Flip


Wend
End
 

biegl

BeitragMo, Nov 01, 2004 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
so:

Code: [AUSKLAPPEN]
Collisions SchiffType,PlanetType,1,2


erstens das...

und:
du hast sliden an,deswegen sieht es so aus als ob dein schiff durch den planet durchfliegt. i wirklichkeit aber collidiert dein schiff mit dem planet der planet slidet aber an dem schiff und geht sofort an die seite...

les dir das hier mal durch...
http://blitzbase.de/befehle3d/collisions.htm

mfg biegl[/code]
 

Duke Nukem

BeitragMo, Nov 01, 2004 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, ich hab die beiden types vertauscht und schon läuft es, auch das mit dem slide funktioniert. (und deswegen hab ich mir ne nacht um die ohren gehauen..) aber dazu jetzt ne weitergehende frage: ich muss hier das bewegliche objekt als erstes angeben und das ruhende als zweites. wenn sich beide bewegen, muss ich dann zweimal testen, also:

collisions typ1, typ2, 1,3
collisions typ2, typ1, 1,3

oder gibts ne andere möglichkeit?

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group