Hyperspace Starfield

Post your FreeBASIC source, examples, tips and tricks here. Please don’t post code without including an explanation.
Post Reply
neil
Posts: 594
Joined: Mar 17, 2022 23:26

Hyperspace Starfield

Post by neil »

Here's a Hyperspace Starfield. Changing the warp variable will effect the star trails.
Change warp to .1 for short trails.
Change warp to 2 for long trails.
You may have to adjust the sleep statement as needed.

Code: Select all

' Hyperspace by neil
Screen 19,8,1,1 'full screen mode
SetMouse 0,0,0
Randomize
Dim Shared AS Integer c,i
Dim Shared As Integer  Ctrx = 400, Ctry = 300, Stars = 200
Dim Shared As Single Nx(stars), Ny(stars), zx(stars), dY(stars), clr(stars)

'change warp to .1 for short trails
'change warp to 2 for long trails
'.5 is the default warp speed

Dim As Single warp = .5 

DIM As Integer Ox(stars), Oy(stars)

Sub Scramble
 Nx(I) = Rnd * 50 + (Ctrx - 25): Ny(I) = Rnd * 50 + (Ctry - 25)
 zx(I) = (Ctrx - Nx(I)): Dy(I) = (Ctry - Ny(I))
End Sub

FOR I = 1 TO stars
IF c > 15 THEN c = 0
c = c + 1
clr(I) = c
Next i

Do
For i = 1 TO stars
 Line (156, 96)-(164, 104), 0, BF: Line (Ox(I), Oy(I))-(Nx(I), Ny(I)), 0
 IF Nx(I) < -30 OR Nx(I) > 800 OR Ny(I) < -30 OR Ny(I) > 800 THEN Scramble
 IF ABS(zx(I)) + ABS(dY(I)) = 0 THEN Scramble
 Ox(I) = Nx(I): Oy(I) = Ny(I)
 Nx(I) = Nx(I) - zx(I) * warp: Ny(I) = Ny(I) - dY(I) * warp
 Line (Ox(I), Oy(I))-(Nx(I), Ny(I)), Clr(I)
Next I

'speed adjust as needed
sleep 50,1

Loop Until Inkey = chr(27)
End
neil
Posts: 594
Joined: Mar 17, 2022 23:26

Re: Hyperspace Starfield

Post by neil »

Here' a tip. Change stars = 200 to stars =1000. Then change warp =.5 to warp = 2. Now that's Hyperspace.
Post Reply