Camera as mirror?

Blitz3D Forums/Blitz3D Programming/Camera as mirror?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Here's the code so far:

Global speed#=0
Global steer#=0
Global gear%=0
Global stick%=0
Global gearstring$="Neutral"
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
plane=CreatePlane()
EntityColor plane,63,63,63
tex1=LoadTexture("buildingwall03.tga")
tex2=LoadTexture("concrete2.tga")
building=CreateCube()
ScaleMesh building,25,25,25
EntityTexture building,tex1
PositionMesh building,0,25,0
HideEntity building
sidewalk=CreateCube()
ScaleMesh sidewalk,35,1,35
EntityTexture sidewalk,tex2
PositionMesh sidewalk,0,1,0
HideEntity sidewalk
For x = 0 To 74
 For y = 0 To 74
  cube01=CopyEntity(building)
  cube02=CopyEntity(sidewalk)
  PositionEntity cube01,y * 100,1,x * 100
  PositionEntity cube02,y * 100,-1,x * 100
 Next
Next
world=CreatePivot()
pivot=CreatePivot(world)
camera01=CreateCamera(pivot)
CameraClsColor camera01,128,191,255
CameraViewport camera01,0,0,1024,768
MoveEntity camera01,50,5,0
RearQuad=CreateMesh(camera01)
s=CreateSurface(RearQuad)
v0=AddVertex(s,-0.25,1.00,1.01,+1,+0)
v1=AddVertex(s,0.25,1.00,1.01,+0,+0)
v2=AddVertex(s,0.25,0.50,1.01,+0,+1)
v3=AddVertex(s,-0.25,0.50,1.01,+1,+1)
AddTriangle	s,v0,v1,v2
AddTriangle	s,v0,v2,v3
RearTex=CreateTexture(256,128,1)
RearBuffer=TextureBuffer(RearTex)
EntityTexture RearQuad,RearTex
EntityFX RearQuad,1+8
camera02=CreateCamera(camera01)
CameraClsColor camera02,128,191,255
TurnEntity camera02,0,180,0
CameraProjMode camera02,0
CameraViewport camera02,0,0,256,128
light=CreateLight() 
RotateEntity light,0,90,0
gear=0
speed=0
If JoyType(0) Then stick=0
If JoyType(1) Then stick=1
If JoyType(2) Then stick=2
If JoyType(3) Then stick=3
While Not KeyDown(1)
 If JoyHit(13,stick) Then gear=gear-1:If gear<-1 Then gear=-1
 If JoyHit(14,stick) Then gear=gear+1:If gear>1 Then gear=1
 If gear=-1 Then gearstring="Reverse"
 If gear=0 Then gearstring="Neutral"
 If gear=1 Then gearstring="Drive"
 If JoyY(stick) < -0.05
  If gear=1
   speed=speed+0.005
   If speed>2 Then speed=2
   MoveEntity camera01,0,0,speed
  End If
  If gear=-1
   speed=speed-0.005
   If speed<-0.5 Then speed=-0.5
   MoveEntity camera01,0,0,speed
  EndIf
 End If
 If JoyY(stick) > 0.05
  speed=speed-0.01
  If speed<0 Then speed=0
  speed=speed*0.99
  MoveEntity camera01,0,0,speed
 End If
 If JoyY(stick) > -0.05 And JoyY(stick) < 0.05
  speed=speed*0.99
  MoveEntity camera01,0,0,speed
 End If	
 If JoyX(stick) < -0.05 And speed>0
  steer=-JoyX(stick)
  If steer>1 Then steer=1
  TurnEntity camera01,0,steer,0
 End If
 If JoyX(stick) > 0.05 And speed>0
  steer=-JoyX(stick)
  If steer<-1 Then steer=-1
  TurnEntity camera01,0,steer,0
 End If
 If JoyX(stick) < -0.05 And speed<0
  steer=JoyX(stick)
  If steer<-1 Then steer=-1
  TurnEntity camera01,0,steer,0
 End If
 If JoyX(stick) > 0.05 And speed<0
  steer=JoyX(stick)
  If steer>1 Then steer=1
  TurnEntity camera01,0,steer,0
 End If
 If JoyX(stick) > -0.05 And JoyX(stick) < 0.05 Then steer=0
 EntityParent camera02,0
 CameraProjMode	camera01,0
 CameraProjMode	camera02,1
 RenderWorld
 CopyRect 0,0,256,128,0,0,BackBuffer(),RearBuffer
 EntityParent camera02,Camera01
 CameraProjMode	camera02,0
 CameraProjMode	Camera01,1
 UpdateWorld
 RenderWorld 
 Text 0,0,"Car speed:"+speed*100
 Text 0,15,"Gear:"+gearstring
 Flip 
Wend 
End


Two problems: The mirror camera is tilted to the ground and the car stops suddenly in reverse.