Ah Curlie Borealis makes a nice screen saver!
Eye Candy #9B
Eye Candy #9B?
Code: (Select All)
_Title "Curlie Borealis" 'Quick trans B+ 2019-08-29
'Curlie borealis.bas for SmallBASIC 0.12.2 [B+=MGA] 2016-04-23
' ;-) cool mods thanks to alpha
Const xmax = 1200, ymax = 700
Dim Shared qb(15)
qb(0) = &HFF000000
qb(1) = &HFF000088
qb(2) = &HFF008800
qb(3) = &HFF008888
qb(4) = &HFF88000
qb(5) = &HFF880088
qb(6) = &HFF888800
qb(7) = &HFFCCCCCC
qb(8) = &HFF888888
qb(9) = &HFF0000FF
qb(10) = &HFF00FF00
qb(11) = &HFF00FFFF
qb(12) = &HFFFF0000
qb(13) = &HFFFF00FF
qb(14) = &HFFFFFF00
qb(15) = &HFFFFFFFF
Screen _NewImage(1200, 700, 32)
_ScreenMove 100, 20
_FullScreen
Randomize Timer
ff = 2.03: maxi = 25000
Color &HFFFFFFFF, 0: Cls
x = xmax / 2: y = ymax / 2
While _KeyDown(27) = 0
loopcnt = loopcnt + 1
Line (0, 0)-(xmax, ymax), _RGBA(0, 0, 0, 3), BF 'Fells trick
ff = ff + 100.431
If Rnd < .1 Then c = 0 Else c = Int(Rnd * 16) 'need more black oh ALPHA my friend!!!
For i = 0 To maxi
f = f + ff
x = min(xmax, -1 * x + Cos(f * i))
y = min(ymax, -1 * y + Sin(f * i))
PSet (x, y), qb(c)
Next
cc = cc + 1
If loopcnt Mod 1000 = 0 Then
Locate 1, 1: Print Space$(10)
Locate 1, 1: Print loopcnt: _Delay 1
End If
If loopcnt Mod 1800 = 0 Then x = xmax / 2: y = ymax / 2: ff = 0: f = 0 'jiggle this sucker
If Rnd < .001 Then Paint (Rnd * xmax, Rnd * ymax), _RGBA(Rnd * 255, Rnd * 255, Rnd * 255, Rnd * 255)
_Display
_Limit 200 'oh man my fan is hot
Wend
Function min (a, b)
If a < b Then min = a Else min = b
End Function
Eye Candy #9B
Code: (Select All)
_Title " Eye Candy #9B Closer" ' b+ 2022-03-09
DefDbl A-Z
xmax = _DesktopWidth: ymax = _DesktopHeight
Screen _NewImage(xmax, ymax, 32)
_ScreenMove 0, 0
xc = xmax / 2
yc = ymax / 2
diag = Sqr(xc * xc + yc * yc)
p2 = _Pi * 2
Dim colr(-100 To diag + 1000) As _Unsigned Long
Dim Shared cN, pR, pG, pB
While 1
resetPlasma
For i = -100 To diag + 1000
colr(i) = Plasma~&
Next
ro = 950: s = 0
While ro > -50 And _KeyDown(27) = 0
k$ = InKey$
If Len(k$) Then Exit While
Cls
For a = 0 To p2 / 64 Step p2 / (16 * 360)
i = 50 * Sin(s) ' 2 * s or just s
For r = 0 To diag
PSet (xc + r * Cos(a), yc + r * Sin(a)), colr(r + i + ro)
Next
s = s + p2 / 180
Next
sx1 = xc: sy1 = yc: sx2 = xc + diag * Cos(.002): sy2 = yc + diag * Sin(.002): sx3 = xc + diag * Cos(p2 / 64 - .002): sy3 = yc + diag * Sin(p2 / 64 - .002)
For a = p2 / 64 To p2 - p2 / 64 Step p2 / 64
dx1 = xc: dy1 = yc: dx2 = xc + diag * Cos(a): dy2 = yc + diag * Sin(a): dx3 = xc + diag * Cos(a + p2 / 64): dy3 = yc + diag * Sin(a + p2 / 64)
_MapTriangle (sx1, sy1)-(sx2, sy2)-(sx3, sy3), source& To(dx1, dy1)-(dx2, dy2)-(dx3, dy3), 0
Next
Line (0, 0)-(xc - 1.5 * yc, _Height), &HFF000000, BF
Line (xc + 1.5 * yc, 0)-(_Width, _Height), &HFF000000, BF
toggle = 1 - toggle
If toggle Then _Display
'_Limit 80
ro = ro - 1
Wend
If _KeyDown(27) Then System
Wend
Function Plasma~& ()
cN = cN + .2
Plasma~& = _RGB32(127 + 127 * Sin(pR * cN), 127 + 127 * Sin(pG * cN), 127 + 127 * Sin(pB * cN))
End Function
Sub resetPlasma ()
pR = Rnd ^ 2: pG = Rnd ^ 2: pB = Rnd ^ 2
End Sub
Eye Candy #9B?
b = b + ...