yeah. that'd work, but unfortunately, we haven't taken much of sin, cos and tan in class, so i don't really understand it that much
here's some code i made on the fly for a random bouncing ball.
SCREEN 13
DEF SEG = &HA000
DEFINT A-Z
x = 100
y = 100
direct1$ = "s"
direct2$ = "w"
xx = x
yy = y
DO
CIRCLE (xx, yy), 10, 0
IF direct1$ = "s" AND direct2$ = "e" THEN
PAINT (xx + 3, yy + 3), 0
ELSEIF direct1$ = "s" AND direct2$ = "w" THEN
PAINT (xx - 3, yy + 3), 0
ELSEIF direct1$ = "n" AND direct2$ = "e" THEN
PAINT (xx + 3, yy - 3), 0
ELSEIF direct1$ = "n" AND direct2$ = "w" THEN
PAINT (xx - 3, yy - 3), 0
END IF
CIRCLE (x, y), 10, 15
IF direct1$ = "n" AND direct2$ = "w" THEN
PAINT (x, y), 4, 15
ELSEIF direct1$ = "n" AND direct2$ = "e" THEN
PAINT (x, y), 4, 15
ELSEIF direct1$ = "s" AND direct2$ = "w" THEN
PAINT (x, y), 4, 15
ELSEIF direct1$ = "s" AND direct2$ = "e" THEN
PAINT (x, y), 4, 15
END IF
WAIT &H3DA, 8
xx = x
yy = y
IF direct1$ = "n" AND direct2$ = "e" THEN
x = x + 1
y = y - 1
ELSEIF direct1$ = "n" AND direct2$ = "w" THEN
y = y - 1
x = x - 1
ELSEIF direct1$ = "s" AND direct2$ = "w" THEN
y = y + 1
x = x - 1
ELSEIF direct1$ = "s" AND direct2$ = "e" THEN
y = y + 1
x = x + 1
END IF
IF x = 309 AND direct2$ = "e" THEN
direct2$ = "w"
ELSEIF x = 9 AND direct2$ = "w" THEN
direct2$ = "e"
ELSEIF y = 9 AND direct1$ = "n" THEN
direct1$ = "s"
ELSEIF y = 189 AND direct1$ = "s" THEN
direct1$ = "n"
END IF
LOOP UNTIL INKEY$ <> ""