'===========================================================================
' Subject: A STAR FIELD                       Date: 04-30-96 (06:36)       
'  Author: Cam Spowart                        Code: QB, QBasic, PDS        
'  Origin: slyboots@supernet.ab.ca          Packet: EGAVGA.ABC
'===========================================================================
SCREEN 12: CLS

DIM x(1 TO 50) AS INTEGER
DIM y(1 TO 50) AS INTEGER
DIM xinc(1 TO 50) AS SINGLE
DIM yinc(1 TO 50) AS SINGLE
xcenter = 320
ycenter = 240
FOR a = 1 TO 50 STEP 1
RANDOMIZE TIMER
'x(a) = INT(RND * 32) + 304
'y(a) = INT(RND * 20) + 229
x(a) = xcenter
y(a) = ycenter
xinc(a) = RND * 1
yinc(a) = RND * 1
neg = INT(RND * 2)
neg1 = INT(RND * 2)
IF neg = 0 THEN xinc(a) = xinc(a)
IF neg = 1 THEN xinc(a) = xinc(a) * -1
IF neg1 = 1 THEN yinc(a) = yinc(a)
IF neg1 = 1 THEN yinc(a) = yinc(a) * -1
NEXT a

DO UNTIL INKEY$ = " "

getbackin:
FOR b = 1 TO 50 STEP 1
PSET (x(b), y(b)), 0

x(b) = x(b) + xinc(b)
y(b) = y(b) + yinc(b)

IF x(b) < 0 OR x(b) > 639 OR y(b) < 0 OR y(b) > 479 THEN GOTO revamp
PSET (x(b), y(b)), 15
xinc(b) = xinc(b) * 1.01
yinc(b) = yinc(b) * 1.01

NEXT b

LOOP
SCREEN 0
CLS
END

revamp:
'x(b) = INT(RND * 32) + 304
'y(b) = INT(RND * 20) + 229
x(b) = xcenter
y(b) = ycenter
xinc(b) = RND * 5
yinc(b) = RND * 5
neg = INT(RND * 2)
neg1 = INT(RND * 2)
IF neg = 0 THEN xinc(b) = xinc(b)
IF neg = 1 THEN xinc(b) = xinc(b) * -1
IF neg1 = 1 THEN yinc(b) = yinc(b)
IF neg1 = 1 THEN yinc(b) = yinc(b) * -1
PSET (x(b), y(b)), 0
'CIRCLE (320, 240), 15, 1
'PAINT (320, 240), 9
GOTO getbackin
