INCLUDE "hug.bac", INIT, HUGOPTIONS, WINDOW, CANVAS, ATTACH, TIMEOUT, DISPLAY, PIXEL, DRAW, SYNC, OUT, SQUARE, KEY, QUIT
INIT
HUGOPTIONS("CANVAS GL")
HUGOPTIONS("GL_FREEZE 1")
HUGOPTIONS("NOSCALING")
CONST XSize = 640
CONST YSize = 480
CONST message$ = "S T A R S"
DECLARE x[501], y[501], z[501] TYPE int
FUNCTION Draw_Stars
LOCAL i
FOR i = 0 TO 500
x[i] = x[i] - z[i]
IF x[i] < 0 THEN x[i] = x[i] + XSize
NEXT
DRAW(canvas)
SQUARE("#000000", 0, 0, XSize, YSize, TRUE)
FOR i = 0 TO 500
PIXEL("#FFFFFF", x[i], y[i])
NEXT
OUT(message$, "#FFFF00", "#000000", XSize/2-(LEN(message$)*8)/2, YSize/2)
SYNC
IF KEY() THEN QUIT
RETURN TRUE
END FUNCTION
FOR i = 0 TO 500
x[i] = RANDOM(XSize)
y[i] = RANDOM(YSize)
z[i] = RANDOM(8)+1
NEXT
win = WINDOW("Stars Demo with HUG", XSize, YSize)
canvas = CANVAS(XSize, YSize)
ATTACH(win, canvas, 0, 0)
TIMEOUT(60, Draw_Stars)
DISPLAY