Not much progress on the puzzles, yesterday, but I did make a planet, so that's ok.
-=-=-
It's not much, and is in reality just a very simple redrawing of a bunch of circles, but the result is really quite nice.
Of course, it's also far too slow to do anything with, other than render it and look at it, but .. You know.. Something to do!!
Would I use this technique again? Sure. Though I'm not really sure in what context.
Scale it up, though, and you have a lovely world to wander around in.
In fact, if scaled up in a decent way, you might be able to get it running at a better speed, since you wouldn't be drawing all 320x320 (or larger) areas at a time.
Focus on a smaller area, and you could draw it with larger tiles, or something.
..
It's doable.
Maybe!
(Also, would be infinitely quicker if GotoJSE's speed issues weren't in the way!)
// Landscape
// by Jayenkai
// Created 2022/12/13
// GotoJSE.com/dhBQxhFv.BAS
// Settings
Rez=320 // Resolution of Landscape. This can safely go up to 1024, but .. Gosh it gets slow!!
WorldHue=0 // Changes Colour!!
Bumpiness=1 // How bumpy shit gets!
Graphics 1920,1080,2
if Rez>ScreenWidth() then Rez=ScreenWidth()
if Rez>ScreenHeight() then Rez=ScreenHeight()
CLS;ResetDraw
Process=128/Rez
Bumpiness=(Bumpiness*Process)
Dim Map(Rez,Rez,10)
Highest=0
Lowest=255
CLS;ResetDraw
SetAlpha 0.1
for hill=0 to 256
SetSize Rnd(2,2)
Light Rnd(0,Rez),Rnd(0,Rez),Rnd(0,Rez*0.25),Rnd(0.1,0.4)
next
Flip
c=0
for x=0 to Rez
for y=0 to Rez
Map(x,y,0)=ReadPixel(x,y,0)
if Map(x,y,0)>Highest then Highest=Map(x,y,0)
if Map(x,y,0)<Lowest then Lowest=Map(x,y,0)
next
c=c+1
if c>Rez/64
c=0
SetAlpha 0.25
Rect x-4,0,1,Rez
Flip
endif
next
Water=(((Highest-Lowest)*Rnd(0.1,0.3))+Lowest)/Highest
Ice=Rnd(0.8,1)
ResetDraw
InkRot WorldHue+240,0.7,0.6
CLS GetRed,GetGreen,GetBlue
w=ScreenWidth()/(Rez*0.8)
h=ScreenHeight()/Rez
SetWidth w+1
for x=0 to Rez
for y=0 to Rez
m=Map(x,y,0)/Highest
InkRot 0,0,m*0.7:SetAlpha 1
if m<Rnd(0.8,1)*Ice then InkRot (WorldHue+Rnd(115,125)) mod 360,1-Rnd(m),m*Rnd(0.5,0.8)
bx=(x*w)-y*h*0.3
by=(ScreenHeight()*0.1)+(y*h)
tx=bx
ty=by-(m*Rez*Bumpiness)
if m<Water*Rnd(1,1.3) then InkRot (WorldHue+Rnd(40,70)) mod 360,1-Rnd(m*0.25),m*Rnd(1,1.2)
if m<Water then InkRot (WorldHue+230) mod 360,0.8,0.4:ty=by-(Water*Rez*Bumpiness)
by=by+ScreenHeight()*0.5
Line tx,ty,bx,by
next
if x mod 6==0 then flip
next
End