[B3D] Kamera zu tief

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

N0X

Betreff: [B3D] Kamera zu tief

BeitragSa, März 21, 2009 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey!
Ich habe eine Kamera mit Schwerkraft.
Durch die Schwerkraft liegt sie ganz unten auf dem Boden, allerdings soll sie etwas über dem Boden stehen bleiben.
Sorry, für so eine Noob-Frage, aber wie krieg ich das hin das meine Kamera nicht zu tief liegt?

Hier ein bisschen
Code: [AUSKLAPPEN]
Const PLYTYPE=2,TERTYPE=1
Global pVy#

Global pivot = CreatePivot()
Global cam   = CreateCamera(pivot)

Global map     = LoadMesh("models\maps\de_inferno.3ds")
Global weap    = LoadMesh("models\weapons\glock.3ds",cam)

EntityType cam,PLYTYPE
EntityType map,TERTYPE

Collisions PLYTYPE,TERTYPE,2,2
While Not KeyHit(1)
   
   move()
   
   UpdateWorld()
   RenderWorld()
   Flip
Wend
End

Function move()
   If KeyDown(57) And pVy = 0 Then pVy = 3.5
   If EntityCollided(cam,TERTYPE) Then
      pVy = 0
   Else
      pVy = (pVy - 0.25) / 0.999
      PositionEntity cam,EntityX(cam),EntityY(cam)+pVy,EntityZ(cam)
   End If
End Function


Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Nicdel

BeitragSa, März 21, 2009 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

minimalerWert = 100  ;Nur als Beispiel (Kamera mindestens 100 über 0)
If EntityY(cam) < minimalerWert PositionEntity cam, EntityX(cam), minimalerWert,EntityZ(cam)
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

N0X

BeitragSa, März 21, 2009 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, aber das löst das Problem noch nicht.
Jetzt fällt der Spieler runter bis zu 100, dann langsam bis 0 und dann wieder von 100 usw.
Er soll einfach ca. 80 höher als die Map gehen, aber trotzdem noch mit ihr kollidieren.

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

ToeB

BeitragSa, März 21, 2009 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Mache entweder den EntityRadius höher (bzw. EntityBox )oder mache es so :
Code: [AUSKLAPPEN]
TranslateEntity Camera,0,-0.1,0 ;Schwerkraft
PositionEntity Camera,EntityX(Camera),EntityY(Camera)+CameraHeight,EntityZ(Camera)


Ich würd aber zu meinem ersten vorschlag raten...


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

N0X

BeitragSa, März 21, 2009 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Super, Danke! Very Happy

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

the FR3AK

BeitragSa, März 21, 2009 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Wtf?!

Code: [AUSKLAPPEN]

Pivot=CreatePivot()
Cam=createCamera(pivot)

PositionEntity Cam 0,100,0


Der Pivot ist Parent von der Cam und somit ist die Kamera immer an den Pivot gebunden, der Pivot wird auf 0,0,0 Positioniert und die Kamera bleibt dann Konstant bei 0,100,0

AChja: Nun muss allerdings der Pivot immer mit Schwerkraft heruntergezogen werden und nicht mehr die Kamera!

N0X

BeitragSa, März 21, 2009 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok?
Jetzt 'hab ich das Problem, dass wenn ich auf z.B. einen Würfel gehe, die Kamera sich um ca.1000 (?) nach oben hin korrigiert!
Warum das denn jetzt?

Mfg,
N0X

//Edit:
Ok, es liegt am "EntityRadius".. aber warum?
oder noch besser: Wie kann ich das verhindern?
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

ToeB

BeitragSo, März 22, 2009 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du jetzt den Pivot + den EntityRadius hast, ist es logisch...

Du musst jetzt nur den Pivot einen EntityRadius geben, die Camera im pivot nach oben verschieben, und du kannst zusätzlich noch in der schleife die camera auf die alte Position korrigieren...

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

N0X

BeitragSo, März 22, 2009 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, Danke, aber muss ich jetzt den Pivot Translaten oder die Cam? Ich denk mal den Pivot, oder?
Allerdings ist jetzt alles wieder platt auf dem Boden!

Hier mal wieder der Code: [AUSKLAPPEN]
Const PLYTYPE=2,TERTYPE=1

Global pivot   = CreatePivot()
Global cam     = CreateCamera(pivot)

PositionEntity cam,0,400,0
EntityRadius pivot,1,60

Global map     = LoadMesh("models\maps\de_inferno.3ds")
Global weap    = LoadMesh("models\weapons\glock.3ds",cam)
PositionEntity weap,18,-10,35

EntityType cam,PLYTYPE
EntityType map,TERTYPE

Collisions PLYTYPE,TERTYPE,2,3
While Not KeyHit(1)
   
   TranslateEntity pivot,0,-10,0
   
   RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
   
   UpdateWorld()
   RenderWorld()
   Flip
Wend
End


Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

the FR3AK

BeitragSo, März 22, 2009 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Wunder. Deine Kamera hat einen Kollisionstyp, der Pivot nicht. Der Pivot fällt, die Kamera mit ihm. Aber nur solange bis die Kamera auf Widerstand stösst und hängen bleibt, der Pivot fällt trotzdem weiter.

N0X

BeitragSo, März 22, 2009 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, habe ich geändert, hat trotzdem nichts gebracht...
Weil ich mir immer noch nicht denken kann warum das nicht funktioniert, poste ich mal den gesamten Code.

Code: [AUSKLAPPEN]
Graphics3D 1680,1050,32,1
SetBuffer BackBuffer()

Const PLYTYPE=2,TERTYPE=1

Global cam     = CreateCamera()

EntityRadius cam,0.1,50
PositionEntity cam,310,400,0

light          = CreateLight()

Global map     = LoadMesh("models\maps\de_inferno.3ds")
Global weap    = LoadMesh("models\weapons\glock.3ds",cam)
PositionEntity weap,18,-10,35

EntityType cam,PLYTYPE
EntityType map,TERTYPE

CameraRange cam,1,99999

MoveMouse 840,525
Collisions PLYTYPE,TERTYPE,2,3
While Not KeyHit(1)
   
   TranslateEntity cam,0,-10,0
   
   RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
   
   move()
   
   If KeyHit(59) Then PlaySound(bomb_pl)
   
   UpdateWorld()
   RenderWorld()
   Flip
Wend
End

Function move()
   If KeyDown(17) Then MoveEntity cam,0,0,4
   If KeyDown(31) Then MoveEntity cam,0,0,-4
   If KeyDown(30) Then MoveEntity cam,-4,0,0
   If KeyDown(32) Then MoveEntity cam,4,0,0
End Function


Brauche Hilfe!

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

ToeB

BeitragSo, März 22, 2009 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
der Cam solltest du EntityType wegmachen... nur der Pivot...


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

N0X

BeitragSo, März 22, 2009 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, super, klappt!
Aber wenn ich eine Treppe hochlaufe wird bei der Kollision mit den einzelnen Stufen die Kamera (oder der Pivot?) immernoch zu hoch gesetzt (und fällt wieder runter).
Liegts vielleicht am Mesh?

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

ToeB

BeitragSo, März 22, 2009 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das liegt dann an der BlitzCollision...

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

N0X

BeitragSo, März 22, 2009 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, schade, trotzdem Danke für die Hilfe!

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group