Post by johnno56 on Jun 9, 2019 20:13:03 GMT -6
Here is a "quick and dirty" routine to create a 2 colour, random landscape. I will not be offended if it is not used.
Converted from my sdlbasic version.
Converted from my sdlbasic version.
xmax = 640
ymax = 480
WindowOpen(0,"2 Colour, 2D Landscape Generator",0,0,xmax,ymax,0)
Window(0)
CanvasOpen(0,xmax,ymax,0,0,xmax,ymax,0)
Canvas(0)
clearcanvas
randomize(timer)
function range(minimum, maximum)
return minimum + rand((maximum + 1) - minimum)
end function
y = range(99,390)
firsty = y
count = 0
change = 0
endcount = range(21,40)
for x = 0 to xmax - 1
count = count + 1
if count = endcount then
change = range(1,5)
count = 0
endcount = range(20,40)
end if
yadd = range(1,9)
select case change
case 0
select case yadd
case 0
y = y - 1
case 1
y = y - 1
case 7
y = y + 1
case 8
y = y + 1
end select
case 1
select case yadd
case 0
y = y - 2
case 1
y = y - 2
case 2
y = y - 1
case 3
y = y - 1
case 7
y = y + 1
case 8
y = y + 1
end select
case 2
select case yadd
case 0
y = y - 3
case 1
y = y - 3
case 2
y = y - 2
case 3
y = y - 2
case 4
y = y - 2
case 5
y = y - 1
end select
case 3
select case yadd
case 0
y = y + 3
case 1
y = y + 3
case 2
y = y + 2
case 3
y = y + 2
case 4
y = y + 2
case 5
y = y + 1
end select
case 4
select case yadd
case 0
y = y + 2
case 1
y = y + 2
case 2
y = y + 1
case 3
y = y + 1
case 7
y = y - 1
case 8
y = y - 1
end select
end select
if y > 280 then
y = y - 2
end if
if y < 50 then
y = y + 2
end if
setColor(rgb(0,128,0))
line(x,y,x,y+9)
setColor(rgb(128,64,0))
line(x,y+10,x,ymax-1)
next
update()
waitkey