Labyrint Kollision

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Combine

Betreff: Labyrint Kollision

BeitragFr, Jun 03, 2005 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich bau grad ein Labyrint.

nun will ich einstellen das man an den Wändne nicht durchfliegen kann.

Hier mal ein teil vom Code.
BlitzBasic: [AUSKLAPPEN]
Graphics3D 640,480, 16, 1
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera,0,1,0

light=CreateLight()
RotateEntity light,90,0,0

terrain=CreateTerrain(32)

grass_tex=LoadTexture(\"mos.qz\")
EntityTexture terrain,grass_tex

Global stein=LoadTexture( \"stein.qz\" )
Global eisen=LoadTexture( \"eisen.qz\" )
Global wand=LoadTexture( \"wand.qz\" )

Global cube1=CreateCube()

PositionEntity cube1, 3, ,7

EntityTexture cube1, stein

While Not KeyHit(1)
If KeyDown(205)=1 Then TurnEntity camera,0,-1,0
If KeyDown(203)=1 Then TurnEntity camera,0,1,0
If KeyDown(208)=1 Then MoveEntity camera,0,0,-0.05
If KeyDown(200)=1 Then MoveEntity camera,0,0,0.05
RenderWorld
Text 0,0,\"Benutze Pfeiltasten zum laufen!\"
Flip
Wend
End



Da möcht ich einsatellen das die Kamera nicht durch cube 1 durchfliegen kann, kann mir da bitte jemand helfen!

danke!

Kryan

BeitragFr, Jun 03, 2005 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
vor der hauptschleife:
EntityType camera,1
EntityType cube1,2
in der hauptschleife :
collisions ...

was bei ... genau stehen soll, weiß ich nich mehr Sad
kannst ja in die online-hilfe schauen
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

Combine

BeitragFr, Jun 03, 2005 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Graphics3D 640,480, 16, 1
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera,0,1,0

light=CreateLight()
RotateEntity light,90,0,0

terrain=CreateTerrain(32)



grass_tex=LoadTexture(\"mos.qz\")
EntityTexture terrain,grass_tex


Cube1 = CreateCube()



PositionEntity Cube1, 3, 1, 7


EntityType Cube1,1
EntityType camera,2



Repeat

Cls


RenderWorld




Collisions 1,2,2,2

UpdateWorld

Flip


While Not KeyHit(1)
If KeyDown(205)=1 Then TurnEntity camera,0,-1,0
If KeyDown(203)=1 Then TurnEntity camera,0,1,0
If KeyDown(208)=1 Then MoveEntity camera,0,0,-0.05
If KeyDown(200)=1 Then MoveEntity camera,0,0,0.05
RenderWorld



Flip
Wend
End
Until KeyHit(1)






warum geht das nich!
 

Gerhard

BeitragSa, Jun 04, 2005 9:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst auf jeden Fall eine saubere Hauptschleife.
In deiner obigen Schleife hast du nochmal eine Schleife um die Tastaturbefehle. In der läuft dein Programm, also z.B. ohne Updateworld.

Kryan

BeitragSa, Jun 04, 2005 9:51
Antworten mit Zitat
Benutzer-Profile anzeigen
=>BlitzBasic: [AUSKLAPPEN]
Graphics3D 640,480, 16, 1
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,1,0
light=CreateLight()
RotateEntity light,90,0,0
terrain=CreateTerrain(32)
grass_tex=LoadTexture(\"mos.qz\")
EntityTexture terrain,grass_tex
Cube1 = CreateCube()
PositionEntity Cube1, 3, 1, 7
EntityType Cube1,1
EntityType camera,2
Repeat
Cls
Collisions 1,2,2,2
UpdateWorld
RenderWorld
If KeyDown(205)=1 Then TurnEntity camera,0,-1,0
If KeyDown(203)=1 Then TurnEntity camera,0,1,0
If KeyDown(208)=1 Then MoveEntity camera,0,0,-0.05
If KeyDown(200)=1 Then MoveEntity camera,0,0,0.05
Flip
Until KeyHit(1)
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

Tapsi

BeitragSa, Jun 04, 2005 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst zuerst konstante festlegen (mit const) für die camera, fürs gelände und für objekte, am besten gleich zu anfang des programms

BlitzBasic: [AUSKLAPPEN]

Const cam_type=1, ter_type=2, ob_type=3



in die hauptschleife VOR updateworld kommen jetzt die collisionen. dabaei kollidiert jede der konstanten miteinander:

BlitzBasic: [AUSKLAPPEN]


Collisions cam_type, ter_type, 2, 3
Collisions cam_type, ob_type, 2, 3
Collisions ter_type, ob_type, 2, 3


dabei kann man auch die zahlen benutzen (collisions 1, 2, 2, 3)
jetzt musst du nur noch jedem objekt mit entitytype zuweisen, dass es kollidiert:

BlitzBasic: [AUSKLAPPEN]

EntityType wand, 1 ;oder 2 oder 3


so müßte das gehen

Kryan

BeitragSa, Jun 04, 2005 10:27
Antworten mit Zitat
Benutzer-Profile anzeigen
das verändert nichts
meins ist richtig Exclamation Very Happy
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

Tapsi

BeitragSa, Jun 04, 2005 10:30
Antworten mit Zitat
Benutzer-Profile anzeigen
aber würde deine variante nicht ziemlich kompliziert werden, wenn du nicht nur eine wand sondern gleich hundert hast?
Question Razz

Kryan

BeitragSa, Jun 04, 2005 10:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ja...aber bei dir müsste man auch erstmal wissen , was mauer und so ist Razz
naja...beides gleich kompliziert Rolling Eyes
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

Combine

BeitragSa, Jun 04, 2005 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Kryan hat Folgendes geschrieben:
=>BlitzBasic: [AUSKLAPPEN]
Graphics3D 640,480, 16, 1
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,1,0
light=CreateLight()
RotateEntity light,90,0,0
terrain=CreateTerrain(32)
grass_tex=LoadTexture(\"mos.qz\")
EntityTexture terrain,grass_tex
Cube1 = CreateCube()
PositionEntity Cube1, 3, 1, 7
EntityType Cube1,1
EntityType camera,2
Repeat
Cls
Collisions 1,2,2,2
UpdateWorld
RenderWorld
If KeyDown(205)=1 Then TurnEntity camera,0,-1,0
If KeyDown(203)=1 Then TurnEntity camera,0,1,0
If KeyDown(208)=1 Then MoveEntity camera,0,0,-0.05
If KeyDown(200)=1 Then MoveEntity camera,0,0,0.05
Flip
Until KeyHit(1)



das versteh ich nicht, ich kann trotzdem noch durch den cube durch.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group