Terrain Kollision und vieles mehr :)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Terrain Kollision und vieles mehr :)

BeitragDi, Aug 17, 2004 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
So... ich fange an, mich mit BB3D auseinanderzusetzen.
Hab erstmal das Tut von Inpcac studiert und komme ganz gut klar, doch ein paar kleine Fragen hätte ich schon:
1. Ich habe ein Terrain(heightmap) gebaut und stelle dort einen Cube drauf. Dann habe ich Collisions bestimmt, doch leider versinkt der Cube ein bisschen im Terrain,was mache ich falsch?

2. Die Steuerung sieht im mom so etwa aus(sehr unausgereift):
Code: [AUSKLAPPEN]

If KeyDown(200)
   If speed < speedmax
      speed = speed + 0.25   
   EndIf    
ElseIf KeyDown(208)
   If speed > speedmin
      speed = speed - 0.25
   EndIf    
ElseIf KeyDown(203)
   TurnEntity figur,0,drehen,0
ElseIf KeyDown(205)
   TurnEntity figur,0,-drehen,0
EndIf

MoveEntity figur,0,-2.5,speed

Klappt wunderbar, doch warum kann ich zum Beispiel nicht nach vorne drücken und gleichzeitig nach rechts? Wüsste nicht, warum das nicht geht.

3. Wie kann man einer Kollision eine bestimmte Funktion zuweisen?
Also wenn man Collisions beschreibt, hat man 3 Sachen zur auswahl, was passieren soll. Aber was ist, wenn ich zum Beispiel das Programm dann beendet möchte? Das ist doch sicher möglich, nur wie? In der Onlinehilfe habe ich nur Berechnungsarten zum Beispiel des Entity gefunden, was ja nicht viel bringt dann, oder Confused

4. Ist der Unterschied zwischen :
"MoveEntity" und "TranslateEntity" nur, das man bei "TranslateEntity" den Drehwinkel vom parent berücksichtigen kann?

Najoa, sind ja doch ein paar mehr Fragen geworden! Aber danach bin ich sicher schlauer Very Happy

MFG
~ Hey Ho Let's Go ~

eizdealer

BeitragDi, Aug 17, 2004 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Welche Kollisionsart hast du bei deiner Cube -> Terrain Kollision bestimmt? Sphere / Polygon nehm ich an. Also wird dein Cube wie eine Sphere behandelt, was zur Folge haben kann, dass manche Ecken etwas einsinken. Wie ich bereits vorher in einem anderen Thread gesagt habe, halte ich nicht viel von dem eingebauten Kollisionszeug. Warum probierst dus nicht mal mit Tokamak. Das kostet zwar ein wenig Einarbeitungszeit, lohnt sich aber bestimmt. Hier die URL: www.tokamakphysics.com

2. Der Fehler hat nix mit 3D zu tun. Hier mal ein Pseudocode, wie du den PC anweist, das zu handhaben:

Wenn Keydown(200) dann speed = speed + 0.25
Wenn nicht Keydown(200) dann...
Wenn Keydown(208) dann speed = speed - 0.25
Wenn nicht Keydown(208) dann...

usw.

-> Nur wenn die erste Bedingung nicht erfüllt ist, wird die zweite überprüft. Nur Wenn die erste UND die zweite Bedingung nicht erfüllt ist, wird die dritte überprüft usw.

richtiger Code:
Code: [AUSKLAPPEN]
If KeyDown(200)
   If speed < speedmax
      speed = speed + 0.25   
   EndIf     
EndIf
If KeyDown(208)
   If speed > speedmin
      speed = speed - 0.25
   EndIf     
EndIf

usw. ...


3. Mit CountCollisions kannst du herausfinden, ob eine Kollision stattgefunden hat. Mit EntityCollided kannst du dann schauen, welches Entity kollidiert hat. Also so:
If EntityCollided(ZielObjekt, KollisionsType) = MeshDerKollidierenSoll Then End

4. Moveentity berücksichtigt Pitch, Yaw und Roll beim bewegen eines Objekts, Translateentity nicht.
 

Blitzkrieg Bop

BeitragDi, Aug 17, 2004 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Teile 2-5 verstanden und verbessert Very Happy Danke. Razz

Aber das mit dem Terrain muss doch auch anders gehen oder? Ich möchte als BB3D anfänger nicht gleich Tokamak verbraten!

*Edit:
Habs grad anstatt mit nem Terrain mit ner Plane getestet. Da steckt der auch drin Mad
~ Hey Ho Let's Go ~
 

Blitzkrieg Bop

BeitragMi, Aug 18, 2004 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, hab nun mit
Code: [AUSKLAPPEN]

Entityradius mesh,(meshheight(mesh)/2)

die Figur zum stehen gebracht. Nun ist der Schuss dran 8)
~ Hey Ho Let's Go ~

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group