
Include"xors3d.bb"
xGraphics3D 640,480,32,0,1
xSetBuffer xBackBuffer()
;Start Constants
T_PLAYER=1
T_TERRAIN=2
;End Constants
;Game Objects
player=xCreateSphere()
camera=xCreateCamera(player)
light=xCreateLight()
terrain=xLoadMesh("content/terrain.3ds")
sky=xCreateSphere()
skytex=xLoadTexture("content/skies01/sky001.jpg")
;End Game Objects
;Start Game Objects Update
xEntityTexture sky,skytex
xEntityFX sky,16
xScaleEntity sky ,50000,50000,50000
xRotateEntity light,90,0,0
xPositionEntity camera,0,1,-5
xScaleEntity terrain ,10,10,10
xPositionEntity terrain ,-300,0,-800
xCameraRange camera,1,500000
;End Game Objects Update
;Start Types
xEntityType player,T_PLAYER
xEntityType terrain,T_TERRAIN
;End Types
;Start Collisions
xCollisions T_PLAYER,T_TERRAIN,2,2
;End Collisions
;Start Main Loop
While Not xKeyDown(1)
;Start SkyBox Event
xTurnEntity sky,0,-.004,0
dxsky#=xEntityX( camera,True )-xEntityX( sky )
dysky#=xEntityY(camera,True )-xEntityY( sky )
dzsky#=xEntityZ( camera,True )-xEntityZ( sky )
xTranslateEntity sky,dxsky#,dysky#,dzsky#
;End SkyBox Event
;Start Mouse Event
mxspd#=xMouseXSpeed()*0.25
myspd#=xMouseYSpeed()*0.25
xMoveMouse xGraphicsWidth()/2,xGraphicsHeight()/2
campitch#=xEntityPitch(player)+myspd#
If campitch#<-85 Then campitch#=-85
If campitch#>85 Then campitch#=85
xRotateEntity camera,campitch#,xEntityYaw(player)-mxspd#,xEntityRoll(camera)
xTranslateEntity player,0,-1,0
;End Mouse Event
;Start Key Event
If xKeyDown(17) Then xMoveEntity player ,0,0,100
If xKeyDown(31) Then xMoveEntity player ,0,0,-1
If xKeyDown(32) Then xMoveEntity player ,1,0,0
If xKeyDown(30) Then xMoveEntity player ,-1,0,0
;End Key Event
xUpdateWorld
xRenderWorld
xFlip
Wend
;End Main Loop
End