Kollision der Kamera

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Unplugged

Betreff: Kollision der Kamera

BeitragDo, Jul 28, 2005 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich hab vor kurzem erst mit Blitz 3D angefangen, habe jetzt ein Programm geschrieben indem man sich mit der Kamera auf einer Ebene bewegen kann, wo sich auch eine Quadrate befinden. Allerdings kann man mit der Kamera noch durch die Quadrate fahren. Jetzt die Frage, die ihr euch sicherlich schon denken könnt:
Wie kann ich es machen, dass die Kamera vor den Blöcken stehen bleibt?
Hier noch mein Code:
BlitzBasic: [AUSKLAPPEN]

; PLANE2.BB
Graphics3D 1024,768
SetBuffer BackBuffer()
cam = CreateCamera()
PositionEntity cam, 0,1,0
CameraFogMode cam, 0
CameraFogRange cam, 1,15

texturh = LoadTexture(\"himmel.jpg\")
texturb = LoadTexture(\"erde3.jpg\")
texturra= LoadTexture(\"textur2.jpg\")
texturc = LoadTexture(\"textur1.jpg\")
boden = CreatePlane()
decke = CreatePlane()
EntityTexture boden, texturb
EntityTexture decke, texturh
RotateEntity decke, 0,0,180
PositionEntity decke, 0,5,0
SeedRnd MilliSecs()
ra = CreateCube()
rb = CreateCube()
rc = CreateCube()
rd = CreateCube()
re = CreateCube()
rf= CreateCube()
licht = CreateLight(3)
PositionEntity licht,0,0,5
PositionEntity ra, 0,1,10
PositionEntity rb, 4,1,10
PositionEntity rc, 0,1,12
PositionEntity rd, 4,1,12
PositionEntity re, 2,3,10
PositionEntity rf, 2,3,12

EntityTexture ra,texturc
EntityTexture rb,texturc
EntityTexture rc,texturc
EntityTexture rd,texturc
EntityTexture re,texturra
EntityTexture rf,texturra


a = Rnd(100,255)
b = Rnd(200,255)
c = Rnd(200,255)
AmbientLight a,b,c

Repeat


If KeyDown(203) Then TurnEntity cam, 0,+0.5,0
If KeyDown(205) Then TurnEntity cam, 0,-0.5,0
If KeyDown(200) Then MoveEntity cam, 0,0,+0.02
If KeyDown(208) Then MoveEntity cam, 0,0,-0.02
If KeyHit(207) Then TurnEntity cam ,0,+180,0
If KeyDown(82) Then
If KeyDown(203) Then TurnEntity cam, 0,+0.5,0
If KeyDown(205) Then TurnEntity cam, 0,-0.5,0
If KeyDown(200) Then MoveEntity cam, 0,0,+0.04
If KeyDown(208) Then MoveEntity cam, 0,0,-0.04

EndIf

RenderWorld
Flip
Until KeyHit(1)
User posted image

Lord_Vader

BeitragDo, Jul 28, 2005 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja mach mit CreateSphere ne kleine kugel wobei du mit EntityParent die camera zum parent der Kugel machst. Dann fragste die kollisionen ab!

TheProgrammer

BeitragDo, Jul 28, 2005 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Du musst jedem Entity, was kollidieren soll erstmal einen Kollisionstyp geben.

BlitzBasic: [AUSKLAPPEN]

EntityType cam,1
EntityType ra,2
EntityType rb,2
...


Dann prüfst du die Kollisionen mit
Collisions 1,2,2,2


Schau dir die einzelnen Parameter aber am besten
hier an:

Collisions
Entitytype

PS.: Benutz nächstes mal bitte die Foren-Suche zuerst.

Mfg
TheProgrammer
aktuelles Projekt: The last day of human being

Unplugged

BeitragDo, Jul 28, 2005 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank.
User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group