_TITLE "Mouse down, drag ball, release... Boing" 'B+ 2019-01-08 from 'boing.bas for SmallBASIC 2015-07-25 MGA/B+
'coloring mods
s(1, 1) = 0: s(1, 2) = 50
s(2, 1) = 0: s(2, 2) = ymax - 50
s(3, 1) = xmax + 30: s(3, 2) = 50
s(4, 1) = xmax + 30: s(4, 2) = ymax - 50
oldtx = 0: oldtyty = 0: da = .03
boingx = 0: boingy = 0
tx = xmax / 2
ty = ymax / 2
boingx = 3 * (tx - oldtx) / 4
boingy = 3 * (ty - oldty) / 4
boingx = -3 * boingx / 4
boingy = -3 * boingy / 4
tx = tx + boingx
ty = ty + boingy
a = 0
oldtx = tx
oldty = ty
s1x = s(corner, 1)
s1y = s(corner, 2)
dx = (tx - s1x) / 2000
dy = (ty - s1y) / 2000
x = tx - 20
y = ty
LINE (sx
, sy
+ 5)-(sx
+ 4, sy
+ 5), _RGB32(118, 118, 118), BF
LINE (sx
, sy
+ 4)-(sx
+ 4, sy
+ 4), _RGB32(148, 148, 148), BF
LINE (sx
, sy
+ 3)-(sx
+ 4, sy
+ 3), _RGB32(238, 238, 238), BF
LINE (sx
, sy
+ 2)-(sx
+ 4, sy
+ 3), _RGB32(208, 208, 208), BF
LINE (sx
, sy
+ 1)-(sx
+ 4, sy
+ 1), _RGB32(168, 168, 168), BF
LINE (sx
, sy
)-(sx
+ 4, sy
), _RGB32(108, 108, 108), BF
LINE (sx
, sy
- 1)-(sx
+ 4, sy
- 1), _RGB32(68, 68, 68), BF
x = x - dx: y = y - dy
a = a + da
g = (50 - r) * 5 + 5
fcirc tx - 20, ty, r
'Steve McNeil's copied from his forum note: Radius is too common a name
RadiusError = -subRadius
X = subRadius
Y = 0
' Draw the middle span here so we don't draw it twice in the main loop,
' which would be a problem with blending turned on.
LINE (CX
- X
, CY
)-(CX
+ X
, CY
), , BF
RadiusError = RadiusError + Y * 2 + 1
LINE (CX
- Y
, CY
- X
)-(CX
+ Y
, CY
- X
), , BF
LINE (CX
- Y
, CY
+ X
)-(CX
+ Y
, CY
+ X
), , BF
X = X - 1
RadiusError = RadiusError - X * 2
Y = Y + 1
LINE (CX
- X
, CY
- Y
)-(CX
+ X
, CY
- Y
), , BF
LINE (CX
- X
, CY
+ Y
)-(CX
+ X
, CY
+ Y
), , BF