[bb] Terrainedit by fireshadow4126 [ 1+ years ago ]

Started by BlitzBot, June 29, 2017, 00:28:42

Previous topic - Next topic

BlitzBot

Title : Terrainedit
Author : fireshadow4126
Posted : 1+ years ago

Description : example: u could use this with a for...next statement and width and depth 0 to create a forest of spikes
height has to be 0-1
to make the height seem greater, scale the y axis of the terrain


Code :
Code (blitzbasic) Select
Function terrainedit(terrain,x,z,width,depth,height)

end_x = x + width
end_z = z + depth

For a = x To end_x
For b = z To end_z
ModifyTerrain terrain,a,b,height
Next
Next

End Function


Comments :


Matty(Posted 1+ years ago)

 You might want to do some bounds checking on those for loops, in particular the end_x and end_z variables.


DreamLoader(Posted 1+ years ago)

 how to do a circle raise?


fireshadow4126(Posted 1+ years ago)

 circle:
terrain = CreateTerrain(1024)
PositionEntity terrain,-256,-1,-256
ScaleEntity terrain,1,5,1
texture = LoadTexture("rocktexture1.bmp")
EntityTexture terrain,texture
For theta = 0 To 360
x = (Cos(theta) * 5)+100
z = (Sin(theta) * 5)+100
Terrain_Edit(terrain,x,z,1,1,1)
Next
The 100s are to make the circle not on the very edge of the terrain.To increase the radius of the circle, replace the 5swith whatever you want


_Skully(Posted 1+ years ago)

 A better way to do circles inside a grid is to use distance... for example, in a rectanglecx=50
cy=50
radius=30
for x=0 to 100
  for y=0 to 100
     if sqr((cx-x)^2+(cy-y)^2)<=radius then
        ;Inside circle
     else
        ; outside circle
     Endif
  next
next