
Global speed#=0
Global angle#=0
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
cam=CreateCamera()
PositionEntity cam,0,5,-10
CameraRange cam,.1,300000000
lit=CreateLight()
TurnEntity lit,0,270,0
pln=LoadMesh("materials\ter.b3d")
tex=LoadTexture("materials\ppp.jpg")
EntityTexture pln,tex
Sky=LoadSkyBox ( "materials\sky\" )
ScaleEntity Sky, 10, 10, 10
EntityOrder sky,1
pivFR=CreatePivot()
PositionEntity pivFR,4.5,1.6,8
pivFL=CreatePivot()
PositionEntity pivFL,-4.5,1.6,8
pivRR=CreatePivot()
PositionEntity pivRR,4.5,1.6,-5.5
pivRL=CreatePivot()
PositionEntity pivRL,-4.5,1.6,-5.5
wheel_mesh = LoadMesh("materials\tara\disk2.3ds")
ScaleEntity wheel_mesh ,.005,.005,.005
RotateMesh wheel_mesh,0,90,0
wheel_meshd = LoadMesh("materials\tara\disk.3ds")
ScaleEntity wheel_meshd ,.005,.005,.005
RotateMesh wheel_meshd,0,90,0
wheel_mesh2 = LoadMesh("materials\tara\disk2.3ds")
ScaleEntity wheel_mesh2 ,.005,.005,.005
RotateMesh wheel_mesh2,0,-90,0
wheel_meshd2 = LoadMesh("materials\tara\disk.3ds")
ScaleEntity wheel_meshd2 ,.005,.005,.005
RotateMesh wheel_meshd2,0,-90,0
wFR=CopyEntity (wheel_mesh)
EntityParent wFR,pivFR
wFRd=CopyEntity (wheel_meshd)
EntityParent wFRd,wFR
PositionEntity wFR,x#,y#,z#
wFL=CopyEntity (wheel_mesh2)
EntityParent wFL,pivFL
wFLd=CopyEntity (wheel_meshd2)
EntityParent wFLd,wFL
PositionEntity wFL,x2#,y2#,z2#
wRR=CopyEntity (wheel_mesh)
EntityParent wRR,pivRR
wRRd=CopyEntity (wheel_meshd)
EntityParent wRRd,wRR
PositionEntity wRR,x3#,y3#,z3#
wRL=CopyEntity (wheel_mesh2)
EntityParent wRL,pivRL
wRLd=CopyEntity (wheel_meshd2)
EntityParent wRLd,wRL
PositionEntity wRL,x4#,y4#,z4#
FreeEntity wheel_mesh
FreeEntity wheel_meshd
FreeEntity wheel_mesh2
FreeEntity wheel_meshd2
Repeat
If KeyDown(205)Then
angle#=angle#-3
If angle#<-30 angle#=-30
Else
angle#=angle#*.9
EndIf
If KeyDown(203)Then
angle#=angle#+3
If angle#>30 angle#=30
Else
angle#=angle#*.9
EndIf
RotateEntity wFR,0,angle#,0
RotateEntity wFL,0,angle#,0
If KeyDown(200)=True Then
speed=speed+.01
If speed>1 speed=1
Else If KeyDown(208)=True Then
speed=speed-.02
If speed<-.5 speed=-.5
Else
speed=speed*0.99
EndIf
MoveEntity pivFR,0,0,speed#
MoveEntity pivFL,0,0,speed#
MoveEntity pivRR,0,0,speed#
MoveEntity pivRL,0,0,speed#
RotateMesh wFR,speed*25,0,0
RotateMesh wFRd,speed*25,0,0
RotateMesh wFL,speed*25,0,0
RotateMesh wFLd,speed*25,0,0
x#=EntityX(pivFR)
y#=EntityY(pivFR)
z#=EntityZ(pivFR)
x2#=EntityX(pivFL)
y2#=EntityY(pivFL)
z2#=EntityZ(pivFL)
x3#=EntityX(pivRR)
y3#=EntityY(pivRR)
z3#=EntityZ(pivRR)
x4#=EntityX(pivRL)
y4#=EntityY(pivRL)
z4#=EntityZ(pivRL)
ter_y#=EntityY(pln)
ter_y2#=EntityY(pln)
ter_y3#=EntityY(pln)
ter_y4#=EntityY(pln)
PositionEntity pivFR,x#,ter_y#,z#
PositionEntity pivFL,x2#,ter_y2#,z2#
PositionEntity pivRR,x3#,ter_y3#,z3#
PositionEntity pivRL,x4#,ter_y4#,z4#
PointEntity cam,wFR
MoveEntity cam,0,0,(EntityDistance(wFR,cam)-50)*0.4
TranslateEntity cam,-1,(phBodyGetY(wFR) - EntityY(cam,1)+EntityY(wFR)+20)*.1,-.05,1
UpdateWorld
RenderWorld
PositionEntity Sky,EntityX( cam,1 ) ,EntityY( cam,1 ), EntityZ( cam,1 )
PostProcess_Render cam
Flip
Until KeyHit(1)
End
Function LoadSkyBox( file$ )
m=CreateMesh()
;front face
b=LoadBrush( file$+"sky-111.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3:
FreeBrush b
;right face
b=LoadBrush( file$+"sky-222.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;back face
b=LoadBrush( file$+"sky-333.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;left face
b=LoadBrush( file$+"sky-444.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
;top face
b=LoadBrush( file$+"sky-555.jpg",49 )
s=CreateSurface( m,b )
AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
AddTriangle s,0,1,2:AddTriangle s,0,2,3
FreeBrush b
ScaleMesh m,100,100,100
FlipMesh m
EntityFX m,1
Return m
End Function