03-21-2005, 02:54 AM
Okay, I programed these stars in Screen 19 for the heck of it while learning 3D.. [Edit] Calculate the FPS wrong fist time, so easy to put the F = F + 1 in the wrong loop, oh well.. Code corrected :wink: [/edit]
[syntax="FreeBasic"]'3DStars! Enjoy!
Centx = 400
Centy = 300
LENS = 256
DIM x(1000)
DIM y(1000)
DIM z(1000)
DIM zv(1000)
DIM xp(1000)
DIM yp(1000)
FOR i = 1 TO 1000
x(i) = -200 + INT(RND * 800)
y(i) = -200 + INT(RND * 400)
z(i) = INT(RND * 255)
zv(i) = 1 + INT(RND * 20)
NEXT
SCREEN 19
az = 0
T! = TIMER
DO
press$ = INKEY$
F = F + 1
LINE (0,0)-(800,600), 0, BF
ra! = az * 3.14 / 180
cosz! = COS(ra!)
sinz! = SIN(ra!)
FOR i = 1 TO 1000
z(i) = z(i) + zv(i)
Dist = LENS - z(i)
IF z(i) > 256 THEN z(i) = 0
Tx! = x(i)
Ty! = y(i)
sx! = (Tx! * cosz!) - (Ty! * sinz!)
sy! = (Ty! * cosz!) + (Tx! * sinz!)
IF Dist > 0 THEN
xp(i) = Centx + (LENS * sx! / Dist)
yp(i) = Centy - (LENS * sy! / Dist)
ELSE
END IF
PSET (xp(i), yp(i)), 15
IF press$ = CHR$(27) THEN CLS: PRINT "Average: FPS"; F / (TIMER - T!): SLEEP: END
NEXT
az = (az + 1) MOD 360
WAIT &H3DA, 8
SLEEP 5
LOOP[/syntax]
[syntax="FreeBasic"]'3DStars! Enjoy!
Centx = 400
Centy = 300
LENS = 256
DIM x(1000)
DIM y(1000)
DIM z(1000)
DIM zv(1000)
DIM xp(1000)
DIM yp(1000)
FOR i = 1 TO 1000
x(i) = -200 + INT(RND * 800)
y(i) = -200 + INT(RND * 400)
z(i) = INT(RND * 255)
zv(i) = 1 + INT(RND * 20)
NEXT
SCREEN 19
az = 0
T! = TIMER
DO
press$ = INKEY$
F = F + 1
LINE (0,0)-(800,600), 0, BF
ra! = az * 3.14 / 180
cosz! = COS(ra!)
sinz! = SIN(ra!)
FOR i = 1 TO 1000
z(i) = z(i) + zv(i)
Dist = LENS - z(i)
IF z(i) > 256 THEN z(i) = 0
Tx! = x(i)
Ty! = y(i)
sx! = (Tx! * cosz!) - (Ty! * sinz!)
sy! = (Ty! * cosz!) + (Tx! * sinz!)
IF Dist > 0 THEN
xp(i) = Centx + (LENS * sx! / Dist)
yp(i) = Centy - (LENS * sy! / Dist)
ELSE
END IF
PSET (xp(i), yp(i)), 15
IF press$ = CHR$(27) THEN CLS: PRINT "Average: FPS"; F / (TIMER - T!): SLEEP: END
NEXT
az = (az + 1) MOD 360
WAIT &H3DA, 8
SLEEP 5
LOOP[/syntax]