Thanks, so where do I plug it in at?
; ModifyTerrain Example
; ---------------------
Graphics3D 640,480
SetBuffer BackBuffer()
SeedRnd MilliSecs()
terra_size=32 ; initial size of terrain, and no. of grids segments, along each side
x_scale=10 ; x scale of terrain
y_scale=50 ; y scale of terrain
z_scale=10 ; z scale of terrain
marker_x=terra_size/2 ; initial x position of marker
marker_z=terra_size/2 ; initial z position of marker
Global camangle
Global camera=CreateCamera()
PositionEntity camera,(terra_size*x_scale)/2,50,0 ; position wherever; just try and get good view of terrain!
RotateEntity camera,30,0,0 ; again, try and get good view of terrain
lite=CreateLight(3)
RotateEntity lite,90,0,0
; Create terrain
Global terra=CreateTerrain(terra_size)
ScaleEntity terra,x_scale,y_scale,z_scale
;change texture button
cycle_tex = 3
;wall_texrure.bmp
wall_tex = LoadTexture("data/wall_texture.bmp")
EntityTexture terra,wall_tex
; Texture terrain
glassgrid_tex=LoadTexture("data/crossgrid.bmp")
;EntityTexture terra,grass_tex
EntityAlpha terra,.5
brownstone_tex=LoadTexture("data/brownstone.bmp")
; Create marker
markerI=CreateSphere()
Global marker=markerI
ScaleEntity marker,1,1,1
EntityColor marker,255,0,0
;Data marker_x
;Data marker_y
; Create array
; texture terrain-1.jpg
terrainA = LoadTexture("data/terrain-1.jpg")
ScaleTexture terrainA,4,4
PointEntity lite,marker
Dim nums(9)
; Fill each element with a random number
For i = 0 To 9
nums(i) = Rand(1,10)
nums(i) = nums(i) + 1
Next
Global tracknum#
Global varX=Rnd(1,5)
Global varY=Rnd(1,5)
Global varZ=Rnd(1,5)
Global Markercube
Markercube = LoadMesh("data/Dir_Box.b3d")
;RotateEntity Markercube,90,0,0
RotateEntity Markercube,0,0,90
ScaleEntity MarkerCube,.5,.5,.5
;ScaleEntity Markercube,4.75,1,4.75
EntityColor MarkerCube,100,0,50
EntityAlpha MarkerCube,.5
Global Mode
Mode = 0
vertex_morph=True
leavelight = 0
cam_turn_speed=0
; Set initial uv scale values
u_scale#=1
v_scale#=1
;start of mainloopVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVv
While Not KeyDown(1)
;entity free flight mode a second camera?
;light mode l key
If KeyHit (38) = True Then leavelight = leavelight+ 1
If leavelight => 3 leavelight = 1
If leavelight = 1 Then
PositionEntity lite,EntityX(marker),EntityY(marker)+20,EntityZ(marker)+20
;PointEntity lite,marker
End If
;If leavelight = 2 Then
If KeyHit(74) Then ; press + to randomly change the 'cone' of light
LightConeAngles lite, Rand(120),Rand(120)
LightRange lite,Rnd(1000,2000)
PointEntity lite,marker
End If
If KeyHit(79) Then
LightColor lite,Rnd(-255,255),Rnd(-255,255),Rnd(-255,255)
;EntityColor marker,
End If
;check for change of texture
If KeyHit(78) = True Then cycle_tex = cycle_tex + 1
If cycle_tex > 4 Then cycle_tex = 1
If cycle_tex = 1 Then EntityTexture terra,wall_tex
If cycle_tex = 1 Then EntityAlpha terra,.5
If cycle_tex = 2 Then EntityTexture terra,glassgrid_tex
If cycle_tex = 2 Then EntityAlpha terra,.5
If cycle_tex = 3 Then EntityTexture terra,terrainA
If cycle_tex = 3 Then EntityAlpha terra,1
If cycle_tex = 4 Then EntityTexture terra,brownstone_tex
If cycle_tex = 4 Then EntityAlpha terra,1
;If cycle_tex = 4 Then ScaleTexture brownstone_tex,2,2
;up on numberpad = 72
;down on mumberpad = 80
;left on numberpad = 75
;right on mumberpad = 77
If KeyDown( 80 )=True Then u_scale#=u_scale#-0.01
If KeyDown( 72 )=True Then u_scale#=u_scale#+0.01
If KeyDown( 75 )=True Then v_scale#=v_scale#-0.01
If KeyDown( 77 )=True Then v_scale#=v_scale#+0.01
; Scale texture
If cycle_tex = 4 Then ScaleTexture brownstone_tex,u_scale#,v_scale#
;If KeyHit(78)=True Then
; Change marker position values depending on cursor key pressed
If KeyDown(205)=True Then marker_x=marker_x+1
If KeyDown(203)=True Then marker_x=marker_x-1
If KeyDown(208)=True Then marker_z=marker_z-1
If KeyDown(200)=True Then marker_z=marker_z+1
If KeyHit(2) Then
camangle = camangle + 1
End If
If camangle => 6 Then camangle = 1
updatePosition(camera)
;TurnEntity camera,0,0,cam_turn_speed
;if key hit spacebar then remember current marker position for manipulation
;call it marked point m_point
If KeyHit(57)=True Then
;markpoint
;startpoint
Gosub startData
Read somthing$
tracknum#=0+1
;Restore startData
EndIf
;different efects
;different efects ;random terrain
If KeyHit(59) Then
Mode = 1
;get 3 random variables from a function
marker_Vars()
terra_detail=4000
End If
If KeyHit(60)= True Then enable=1-enable
; Enable/disable wireframe rendering
WireFrame enable
If Mode = 3 Then
PositionEntity MarkerCube,EntityX(marker)-1.1,EntityY(marker)+1,EntityZ(marker)-.6
EndIf
; Get terrain height at marker position
marker_y#=TerrainHeight(terra,marker_x,marker_z)
; If A pressed then increase marker_y value and modify terrain
If KeyDown(30)=True
If marker_y#<1 Then marker_y#=marker_y#+0.005
If Mode = 0 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
EndIf
EndIf
If KeyHit(59)=True Then
Mode = 1
EndIf
If KeyHit(60) = True Then
Mode = 2
EndIf
If KeyHit(61) = True Then
Mode = 3
EndIf
If KeyHit(62)=True Then
Mode = 4
EndIf
If KeyHit(63)=True Then
Mode = 5
EndIf
If Mode = 1 Then
; Position marker, taking into account x, y and z scales of terrain
PositionEntity marker,marker_x*x_scale,marker_y#*y_scale,marker_z*z_scale
End If
If Mode = 3 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x-1,marker_z-1,marker_y#
ModifyTerrain terra,marker_x-1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z-1,marker_y#
EndIf
If Mode = 4 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x+1,marker_z+1,marker_y#
ModifyTerrain terra,marker_x+1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z+1,marker_y#
EndIf
If Mode = 5 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x-1,marker_z-1,marker_y#
ModifyTerrain terra,marker_x-1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z-1,marker_y#
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x+1,marker_z+1,marker_y#
ModifyTerrain terra,marker_x+1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z+1,marker_y#
EndIf
; If Z pressed then decrease marker_y value and modify terrain
If KeyDown(44)=True
If marker_y#>0 Then marker_y#=marker_y#-0.005
ModifyTerrain terra,marker_x,marker_z,marker_y#
EndIf
; Position marker, taking into account x, y and z scales of terrain
PositionEntity marker,marker_x*x_scale,marker_y#*y_scale,marker_z*z_scale
RenderWorld
Color 150,150,200
Text 0,0,"Use cursor keys to move marker over the terrain"
Text 0,20,"Press A or Z to alter height of terrain at marker's position"
Text 0,40,"Terrain Height: "+ marker_y
Text 0,60,somthing$ + marker_y
Text 0,70,(varX)
Text 0,90,"Drawing_Mode :"+ Mode
Text 0,100,"cycle_tex" + cycle_tex
Text 400,0,"camangle ;" + camangle
Text 400,70,"leavelight" + leavelight
Text 0,120,"marker xyz: x: " +EntityX(marker)+" y: "+ EntityY(marker)+" z: "+EntityZ(marker)
Text 0,140,"MarkerCube xyz: x: " +EntityX(MarkerCube)+" y: "+ EntityY(MarkerCube)+" z: "+EntityZ(MarkerCube)
Flip
Wend
End
.startData
Data 1 + "Tips? Press spacebare to see a small set of instructions."
Data 2 + "keypresses; f1-f5 are drawing modes. + = changetexture "
Data 3 + "- = change lightconeangle,shift = change camera angle"
Data 4 + "f = toggle free light mode, esc = exit,1 on numberpad = changelightcolor"
Data 5 + "control c= toggle freeflight mode or drawing mode."
Data 6 + "It just takes 1 tool to rule! F9 to save"
Data 7 + " for now on data statments shoud be numberd"
Data 8 + " need to figure out how to save a terrain made with this program"
Data 9 + "marker placed"
Function updatePosition(camera)
If camangle=1 Then
PositionEntity camera,EntityX(marker),60,EntityZ(marker)-60
If camangle=1 Then PointEntity camera,marker
EndIf
If camangle = 2 Then
PositionEntity camera,EntityX(marker),120,EntityZ(marker)
If camangle=2 Then PointEntity camera,marker
End If
If camangle = 3 Then
PositionEntity camera,EntityX(marker),80,EntityZ(marker)+30
If camangle=3 Then PointEntity camera,marker
End If
If camangle = 4 Then
PositionEntity camera,EntityX(marker)-30,80,EntityZ(marker)
If camangle=4 Then PointEntity camera,marker
End If
If camangle = 5 Then
cam_speed = cam_speed + 1
PositionEntity camera,EntityX(marker),80,EntityZ(marker) + cam_speed
;RotateEntity camera,0,-180,0
;PointEntity camera,marker
End If
End Function
Function marker_Vars()
varX=Rnd(1,20)
varY=Rnd(1,3)
varZ=Rnd(1,20)
; Here we itterate through all the cells on the terrain grid (switch wireframe on to
; see them) and then make them simply bounce up and down.
;For z = 0 To terra_size -1
;For x = 0 To terra_size-1
;hite# = Sin(TerraY(z,x))
;ModifyTerrain terra,x,z,Abs(hite#/2)+.5,False
;TerraY(z,x) = TerraY(z,x) + 1
;Next
;Next
;ModifyTerrain terra,marker_x+varX,marker_z+varY,marker_y#+varZ
End Function
;Function makebox()
;Mode = 3
;PositionEntity MarkerCube,EntityX(marker)+15,EntityY(marker),EntityZ(marker)+15
;End Function
; ModifyTerrain Example
; ---------------------
Graphics3D 640,480
SetBuffer BackBuffer()
SeedRnd MilliSecs()
terra_size=32 ; initial size of terrain, and no. of grids segments, along each side
x_scale=10 ; x scale of terrain
y_scale=50 ; y scale of terrain
z_scale=10 ; z scale of terrain
marker_x=terra_size/2 ; initial x position of marker
marker_z=terra_size/2 ; initial z position of marker
Global camangle
Global camera=CreateCamera()
PositionEntity camera,(terra_size*x_scale)/2,50,0 ; position wherever; just try and get good view of terrain!
RotateEntity camera,30,0,0 ; again, try and get good view of terrain
lite=CreateLight(3)
RotateEntity lite,90,0,0
; Create terrain
Global terra=CreateTerrain(terra_size)
ScaleEntity terra,x_scale,y_scale,z_scale
;change texture button
cycle_tex = 3
;wall_texrure.bmp
wall_tex = LoadTexture("data/wall_texture.bmp")
EntityTexture terra,wall_tex
; Texture terrain
glassgrid_tex=LoadTexture("data/crossgrid.bmp")
;EntityTexture terra,grass_tex
EntityAlpha terra,.5
brownstone_tex=LoadTexture("data/brownstone.bmp")
; Create marker
markerI=CreateSphere()
Global marker=markerI
ScaleEntity marker,1,1,1
EntityColor marker,255,0,0
;Data marker_x
;Data marker_y
; Create array
; texture terrain-1.jpg
terrainA = LoadTexture("data/terrain-1.jpg")
ScaleTexture terrainA,4,4
PointEntity lite,marker
Dim nums(9)
; Fill each element with a random number
For i = 0 To 9
nums(i) = Rand(1,10)
nums(i) = nums(i) + 1
Next
Global tracknum#
Global varX=Rnd(1,5)
Global varY=Rnd(1,5)
Global varZ=Rnd(1,5)
Global Markercube
Markercube = LoadMesh("data/Dir_Box.b3d")
;RotateEntity Markercube,90,0,0
RotateEntity Markercube,0,0,90
ScaleEntity MarkerCube,.5,.5,.5
;ScaleEntity Markercube,4.75,1,4.75
EntityColor MarkerCube,100,0,50
EntityAlpha MarkerCube,.5
Global Mode
Mode = 0
vertex_morph=True
leavelight = 0
cam_turn_speed=0
; Set initial uv scale values
u_scale#=1
v_scale#=1
;start of mainloopVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVv
While Not KeyDown(1)
;entity free flight mode a second camera?
;light mode l key
If KeyHit (38) = True Then leavelight = leavelight+ 1
If leavelight => 3 leavelight = 1
If leavelight = 1 Then
PositionEntity lite,EntityX(marker),EntityY(marker)+20,EntityZ(marker)+20
;PointEntity lite,marker
End If
;If leavelight = 2 Then
If KeyHit(74) Then ; press + to randomly change the 'cone' of light
LightConeAngles lite, Rand(120),Rand(120)
LightRange lite,Rnd(1000,2000)
PointEntity lite,marker
End If
If KeyHit(79) Then
LightColor lite,Rnd(-255,255),Rnd(-255,255),Rnd(-255,255)
;EntityColor marker,
End If
;check for change of texture
If KeyHit(78) = True Then cycle_tex = cycle_tex + 1
If cycle_tex > 4 Then cycle_tex = 1
If cycle_tex = 1 Then EntityTexture terra,wall_tex
If cycle_tex = 1 Then EntityAlpha terra,.5
If cycle_tex = 2 Then EntityTexture terra,glassgrid_tex
If cycle_tex = 2 Then EntityAlpha terra,.5
If cycle_tex = 3 Then EntityTexture terra,terrainA
If cycle_tex = 3 Then EntityAlpha terra,1
If cycle_tex = 4 Then EntityTexture terra,brownstone_tex
If cycle_tex = 4 Then EntityAlpha terra,1
;If cycle_tex = 4 Then ScaleTexture brownstone_tex,2,2
;up on numberpad = 72
;down on mumberpad = 80
;left on numberpad = 75
;right on mumberpad = 77
If KeyDown( 80 )=True Then u_scale#=u_scale#-0.01
If KeyDown( 72 )=True Then u_scale#=u_scale#+0.01
If KeyDown( 75 )=True Then v_scale#=v_scale#-0.01
If KeyDown( 77 )=True Then v_scale#=v_scale#+0.01
; Scale texture
If cycle_tex = 4 Then ScaleTexture brownstone_tex,u_scale#,v_scale#
;If KeyHit(78)=True Then
; Change marker position values depending on cursor key pressed
If KeyDown(205)=True Then marker_x=marker_x+1
If KeyDown(203)=True Then marker_x=marker_x-1
If KeyDown(208)=True Then marker_z=marker_z-1
If KeyDown(200)=True Then marker_z=marker_z+1
If KeyHit(2) Then
camangle = camangle + 1
End If
If camangle => 6 Then camangle = 1
updatePosition(camera)
;TurnEntity camera,0,0,cam_turn_speed
;if key hit spacebar then remember current marker position for manipulation
;call it marked point m_point
If KeyHit(57)=True Then
;markpoint
;startpoint
Gosub startData
Read somthing$
tracknum#=0+1
;Restore startData
EndIf
;different efects
;different efects ;random terrain
If KeyHit(59) Then
Mode = 1
;get 3 random variables from a function
marker_Vars()
terra_detail=4000
End If
If KeyHit(60)= True Then enable=1-enable
; Enable/disable wireframe rendering
WireFrame enable
If Mode = 3 Then
PositionEntity MarkerCube,EntityX(marker)-1.1,EntityY(marker)+1,EntityZ(marker)-.6
EndIf
; Get terrain height at marker position
marker_y#=TerrainHeight(terra,marker_x,marker_z)
; If A pressed then increase marker_y value and modify terrain
If KeyDown(30)=True
If marker_y#<1 Then marker_y#=marker_y#+0.005
If Mode = 0 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
EndIf
EndIf
If KeyHit(59)=True Then
Mode = 1
EndIf
If KeyHit(60) = True Then
Mode = 2
EndIf
If KeyHit(61) = True Then
Mode = 3
EndIf
If KeyHit(62)=True Then
Mode = 4
EndIf
If KeyHit(63)=True Then
Mode = 5
EndIf
If Mode = 1 Then
; Position marker, taking into account x, y and z scales of terrain
PositionEntity marker,marker_x*x_scale,marker_y#*y_scale,marker_z*z_scale
End If
If Mode = 3 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x-1,marker_z-1,marker_y#
ModifyTerrain terra,marker_x-1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z-1,marker_y#
EndIf
If Mode = 4 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x+1,marker_z+1,marker_y#
ModifyTerrain terra,marker_x+1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z+1,marker_y#
EndIf
If Mode = 5 Then
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x-1,marker_z-1,marker_y#
ModifyTerrain terra,marker_x-1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z-1,marker_y#
ModifyTerrain terra,marker_x,marker_z,marker_y#
ModifyTerrain terra,marker_x+1,marker_z+1,marker_y#
ModifyTerrain terra,marker_x+1,marker_z,marker_y#
ModifyTerrain terra,marker_x,marker_z+1,marker_y#
EndIf
; If Z pressed then decrease marker_y value and modify terrain
If KeyDown(44)=True
If marker_y#>0 Then marker_y#=marker_y#-0.005
ModifyTerrain terra,marker_x,marker_z,marker_y#
EndIf
; Position marker, taking into account x, y and z scales of terrain
PositionEntity marker,marker_x*x_scale,marker_y#*y_scale,marker_z*z_scale
RenderWorld
Color 150,150,200
Text 0,0,"Use cursor keys to move marker over the terrain"
Text 0,20,"Press A or Z to alter height of terrain at marker's position"
Text 0,40,"Terrain Height: "+ marker_y
Text 0,60,somthing$ + marker_y
Text 0,70,(varX)
Text 0,90,"Drawing_Mode :"+ Mode
Text 0,100,"cycle_tex" + cycle_tex
Text 400,0,"camangle ;" + camangle
Text 400,70,"leavelight" + leavelight
Text 0,120,"marker xyz: x: " +EntityX(marker)+" y: "+ EntityY(marker)+" z: "+EntityZ(marker)
Text 0,140,"MarkerCube xyz: x: " +EntityX(MarkerCube)+" y: "+ EntityY(MarkerCube)+" z: "+EntityZ(MarkerCube)
Flip
Wend
End
.startData
Data 1 + "Tips? Press spacebare to see a small set of instructions."
Data 2 + "keypresses; f1-f5 are drawing modes. + = changetexture "
Data 3 + "- = change lightconeangle,shift = change camera angle"
Data 4 + "f = toggle free light mode, esc = exit,1 on numberpad = changelightcolor"
Data 5 + "control c= toggle freeflight mode or drawing mode."
Data 6 + "It just takes 1 tool to rule! F9 to save"
Data 7 + " for now on data statments shoud be numberd"
Data 8 + " need to figure out how to save a terrain made with this program"
Data 9 + "marker placed"
Function updatePosition(camera)
If camangle=1 Then
PositionEntity camera,EntityX(marker),60,EntityZ(marker)-60
If camangle=1 Then PointEntity camera,marker
EndIf
If camangle = 2 Then
PositionEntity camera,EntityX(marker),120,EntityZ(marker)
If camangle=2 Then PointEntity camera,marker
End If
If camangle = 3 Then
PositionEntity camera,EntityX(marker),80,EntityZ(marker)+30
If camangle=3 Then PointEntity camera,marker
End If
If camangle = 4 Then
PositionEntity camera,EntityX(marker)-30,80,EntityZ(marker)
If camangle=4 Then PointEntity camera,marker
End If
If camangle = 5 Then
cam_speed = cam_speed + 1
PositionEntity camera,EntityX(marker),80,EntityZ(marker) + cam_speed
;RotateEntity camera,0,-180,0
;PointEntity camera,marker
End If
End Function
Function marker_Vars()
varX=Rnd(1,20)
varY=Rnd(1,3)
varZ=Rnd(1,20)
; Here we itterate through all the cells on the terrain grid (switch wireframe on to
; see them) and then make them simply bounce up and down.
;For z = 0 To terra_size -1
;For x = 0 To terra_size-1
;hite# = Sin(TerraY(z,x))
;ModifyTerrain terra,x,z,Abs(hite#/2)+.5,False
;TerraY(z,x) = TerraY(z,x) + 1
;Next
;Next
;ModifyTerrain terra,marker_x+varX,marker_z+varY,marker_y#+varZ
End Function
;Function makebox()
;Mode = 3
;PositionEntity MarkerCube,EntityX(marker)+15,EntityY(marker),EntityZ(marker)+15
;End Function