'Starfield SCREEN 12 CONST w = 640, h = 480, cx = w / 2, cy = h / 2, stars = 292 DIM x3d(stars), y3d(stars), c3d(stars) DIM z3d(stars), xs3d(stars), ys3d(stars) starfield3d: FOR d = 1 TO stars z3d(d) = z3d(d) - 2: IF z3d(d) < 1 THEN GOSUB newstar t = x3d(d) * 32: xs3d(d) = t / (z3d(d)) + cx t = y3d(d) * 32: ys3d(d) = t / (12 + z3d(d)) + cy IF xs3d(d) < 0 OR xs3d(d) > w THEN GOSUB newstar IF ys3d(d) < 0 OR ys3d(d) > h THEN GOSUB newstar IF z3d(d) < 255 THEN c3d(d) = 8 IF z3d(d) < 140 THEN c3d(d) = 7 IF z3d(d) < 60 THEN c3d(d) = 15 PSET (xs3d(d), ys3d(d)), c3d(d) NEXT d WAIT &H3DA, 8 FOR d = 1 TO stars PSET (xs3d(d), ys3d(d)), 0 NEXT d IF INKEY$ = CHR$(27) THEN END GOTO starfield3d newstar: z3d(d) = 150 + (RND * 100) x3d(d) = INT(RND * 2000) - 1000 y3d(d) = INT(RND * 2000) - 1000 RETURN