Draw lines with any thickness. Probably not the most efficient as very thick lines would likely redraw pixels that it doesn't need to redraw.
sync on
do
cls
if mouseclick() = 1 and flag = 0 then inc thickness,1 : flag=1
if mouseclick() = 2 and flag = 0 then dec thickness,1 : flag=1
if mouseclick() = 0 then flag = 0
if thickness < 1 then thickness = 1
bline(320,240,mousex(),mousey(),thickness)
set cursor 0,0
print thickness#
sync
loop
REM =========================
REM x1,y1 = starting point
REM x2,y2 = ending poing
REM thick = line thickness
function bline(x1,y1,x2,y2,thick)
t# = thick/2.0
dx = x2-x1
dy = y2-y1
`dot x1,y1
box x1-t#,y1-t#,x1+t#,y1+t#
if abs(dx) > abs(dy)
m# = (0.0 + dy)/dx
b# = y1 - m#*x1
if dx < 0
dx = -1
else
dx = 1
endif
while x1 <> x2
x1 = x1 + dx
`dot x1,m#*x1+b#
box x1-t#,(m#*x1+b#)-t#,x1+t#,(m#*x1+b#)+t#
endwhile
else
if dy <> 0
m# = (0.0 + dx)/dy
b# = x1 - m#*y1
if dy < 0
dy = -1
else
dy = 1
endif
while y1 <> y2
y1 = y1 + dy
`dot m#*y1+b#,y1
box (m#*y1+b#)-t#,y1-t#,(m#*y1+b#)+t#,y1+t#
endwhile
endif
endif
endfunction