This week's featured sample comes from Jeff Sidlosky. It is a star field simulation - you know the one where it appears like you're moving fast through space, with stars whizzing past you.
' Star-field simulation Initialize() Main() Sub Initialize GraphicsWindow.Title = "Super Star Field!" GraphicsWindow.Width = 640 GraphicsWindow.Height = 480 GraphicsWindow.BackgroundColor = "black" GraphicsWindow.PenWidth = 0 GraphicsWindow.Show() num_stars = 200 For index = 0 To num_stars NewStar() EndFor EndSub Sub NewStar Array.SetValue("star_x", index, Math.GetRandomNumber(100) - 50) Array.SetValue("star_y", index, Math.GetRandomNumber(100) - 50) ' Pick a random z depth z = (Math.GetRandomNumber(50) / 100) + 0.50 Array.SetValue("star_z", index, z) ' Start with a dark color and save our shape GraphicsWindow.BrushColor = "DimGray" Array.SetValue("star_shape", index, GraphicsWindow.AddRectangle(2, 2)) Array.SetValue("star_color", index, 0) EndSub Sub Update For index = 0 To num_stars z = Array.GetValue("star_z", index) x = (Array.GetValue("star_x", index) / z) + 320 y = (Array.GetValue("star_y", index) / z) + 240 shape = Array.GetValue("star_shape", index) ' Next z position z = z - 0.02 If(x < 0 Or x > 639 Or y < 0 Or y > 479 Or z <= 0) Then GraphicsWindow.RemoveShape(shape) NewStar() Else ' Check if we should make the star brighter If(z < 0.4) Then If(Array.GetValue("star_color", index) = 0) Then GraphicsWindow.BrushColor = "White" GraphicsWindow.RemoveShape(shape) shape = GraphicsWindow.AddRectangle(2, 2) Array.SetValue("star_shape", index, shape) Array.SetValue("star_color", index, 1) EndIf EndIf GraphicsWindow.MoveShape(shape, x, y) Array.SetValue("star_z", index, z) EndIf EndFor EndSub Sub Main ' Run forever While(1 = 1) Update() EndWhile EndSub
And here's the screenshot! The picture really doesn't do justice. Try this program on your copy of Small Basic to experience the real deal.
Do you want your samples to be featured here? Post them in our forums and we'll pick one each week.