Graphics3D 1024,768,32,1 ClearWorld(1,1,1) Global Player=CreateSphere(32) PositionEntity player,4,4,4 Global MAPRANGE=50;CHANGES THE NUMBER OF TERRAINS IN VIEW Global brush,cam cam=CreateCamera() lgt=CreateLight(2) LightRange lgt,200 PositionEntity cam,0,5,0 RotateEntity cam,0,45,0 CameraRange cam,1,1000 brush=LoadBrush("grass1.png");PLACE ANY TEXTURE HERE ;BrushFX brush,1 Dim Vertx#(11,11) Dim Verty#(11,11) Dim Vertz#(11,11) Dim Maparray.Map_area(100) Type Map_tile Field Maptile Field Active Field tile_id[100] Field Brush_id[100] Field tilex Field tiley Field tilez End Type Type Map_Segm Field Active Field Maptile.Map_tile[10000] End Type Type Map_sect Field Active Field Mapsegm.Map_segm[100] End Type Type Map_area Field Active Field Mapsect.Map_sect[100] End Type For times4=1 To 10 maparray(times4)=New Map_area For times3=1 To 10 maparray(times4)\mapsect[times3]=New map_sect For times2=1 To 10 maparray(times4)\mapsect[times3]\mapsegm[times2]=New Map_Segm For times=1 To 100 maparray(times4)\mapsect[times3]\mapsegm[times2]\maptile[times]=New Map_tile maparray(times4)\mapsect[times3]\mapsegm[times2]\maptile[times]\active=1 Next Next Next Next For tiles=1 To 100 read_Maptile(tiles) log_maptile(tiles) create_maptile(tiles) Next tiles=0 For x=1 To 10 For z=1 To 10 tiles=tiles+1 PositionEntity maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\maptile,x*10,0,z*10 Next Next ;create_skybox() Print maparray(1)\mapsect[1]\mapsegm[1]\maptile[1]\tile_id[32] While Not KeyHit(1) If KeyDown(200) Then MoveEntity cam,0,0,.02 If KeyDown(208) Then MoveEntity cam,0,0,-.02 If KeyDown(203) Then TurnEntity cam,0,.05,0 If KeyDown(205) Then TurnEntity cam,0,-.05,0 EntityParent lgt,cam Hide_it UpdateWorld RenderWorld Flip 0 Wend End .Sector1 Data 3,3,2,1,1,1,1,2,3,3 Data 3,3,2,1,1,1,1,2,3,3 Data 2,2,2,1,1,1,1,2,2,2 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 1,1,1,1,1,1,1,1,1,1 Data 2,2,2,1,1,1,1,2,2,2 Data 3,3,2,1,1,1,1,2,3,3 Data 3,3,2,1,1,1,1,2,3,3 Function Read_Maptile(tiles) Restore Sector1 For times=1 To 100 Read maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\tile_id[times] maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\tile_id[times]=maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\tile_id[times] Next End Function Function log_maptile(tiles) For high=1 To 9 times=0 For x=1 To 10 For z=1 To 10 times=times+1 If maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\tile_id[times]=high Then vertx#(x,z)=-6+x verty#(x,z)=high/2-1 vertz#(x,z)=-6+z vertx#(x,z+1)=-6+x verty#(x,z+1)=high/2-1 vertz#(x,z+1)=-6+z+1 vertx#(x+1,z+1)=-6+x+1 verty#(x+1,z+1)=high/2-1 vertz#(x+1,z+1)=-6+z+1 vertx#(x+1,z)=-6+x+1 verty#(x+1,z)=high/2-1 vertz#(x+1,z)=-6+z EndIf Next Next Next End Function Function create_maptile(tiles) maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\maptile=CreateMesh() surf=CreateSurface(maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\maptile,brush) For x=1 To 10 For z=1 To 10 v1=AddVertex (surf,vertx#(x,z),verty#(x,z),vertz#(x,z),0,0) v2=AddVertex (surf,vertx#(x,z+1),verty#(x,z+1),vertz#(x,z+1),0,1) v3=AddVertex (surf,vertx#(x+1,z+1),verty#(x+1,z+1),vertz#(x+1,z+1),1,1) v4=AddVertex (surf,vertx#(x+1,z),verty#(x+1,z),vertz#(x+1,z),1,0) t1=AddTriangle(surf,v1,v2,v3) t2=AddTriangle(surf,v3,v4,v1) Next Next UpdateNormals maparray(1)\mapsect[1]\mapsegm[1]\maptile[tiles]\maptile End Function Function Hide_it() For times=1 To 100 If EntityDistance(maparray(1)\mapsect[1]\mapsegm[1]\maptile[times]\maptile,cam)>maprange Then HideEntity maparray(1)\mapsect[1]\mapsegm[1]\maptile[times]\maptile EndIf If EntityDistance(maparray(1)\mapsect[1]\mapsegm[1]\maptile[times]\maptile,cam)<maprange Then ShowEntity maparray(1)\mapsect[1]\mapsegm[1]\maptile[times]\maptile EndIf Next End Function Function create_skybox() mesh = CreateMesh() ;front face brush = LoadBrush("front.jpg",49) surface = CreateSurface(mesh,brush) AddVertex surface,-1,+1,-1,0,0 AddVertex surface,+1,+1,-1,1,0 AddVertex surface,+1,-1,-1,1,1 AddVertex surface,-1,-1,-1,0,1 AddTriangle surface,0,1,2 AddTriangle surface,0,2,3 FreeBrush brush ;right face brush = LoadBrush("right.jpg",49) surface = CreateSurface(mesh,brush) AddVertex surface,+1,+1,-1,0,0 AddVertex surface,+1,+1,+1,1,0 AddVertex surface,+1,-1,+1,1,1 AddVertex surface,+1,-1,-1,0,1 AddTriangle surface,0,1,2 AddTriangle surface,0,2,3 FreeBrush brush ;back face brush = LoadBrush("back.jpg",49) surface = CreateSurface(mesh,brush) AddVertex surface,+1,+1,+1,0,0 AddVertex surface,-1,+1,+1,1,0 AddVertex surface,-1,-1,+1,1,1 AddVertex surface,+1,-1,+1,0,1 AddTriangle surface,0,1,2 AddTriangle surface,0,2,3 FreeBrush brush ;left face brush = LoadBrush("left.jpg",49) surface = CreateSurface(mesh,brush) AddVertex surface,-1,+1,+1,0,0 AddVertex surface,-1,+1,-1,1,0 AddVertex surface,-1,-1,-1,1,1 AddVertex surface,-1,-1,+1,0,1 AddTriangle surface,0,1,2 AddTriangle surface,0,2,3 FreeBrush brush ;top face brush = LoadBrush("top.jpg",49) surface = CreateSurface(mesh,brush) AddVertex surface,-1,+1,+1,0,1 AddVertex surface,+1,+1,+1,0,0 AddVertex surface,+1,+1,-1,1,0 AddVertex surface,-1,+1,-1,1,1 AddTriangle surface,0,1,2 AddTriangle surface,0,2,3 FreeBrush brush ;bottom face brush = LoadBrush("bottom.jpg",49) surface = CreateSurface(mesh,brush) AddVertex surface,-1,-1,-1,1,0 AddVertex surface,+1,-1,-1,1,1 AddVertex surface,+1,-1,+1,0,1 AddVertex surface,-1,-1,+1,0,0 AddTriangle surface,0,1,2 AddTriangle surface,0,2,3 FreeBrush brush ScaleMesh mesh,200,200,200 FlipMesh mesh EntityFX mesh,1 ; make fullbright Return mesh UpdateNormals mesh End Function
test this please fps and basic veiws welcome
Blitz3D Forums/Blitz3D Programming/test this please fps and basic veiws welcomeThe 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.