This is a colorful spinny spiraly thingy that I made cause I was bored. It's inspired by a Super Monkey Ball 2 level
You can rotate the camera by moving the mouse and zoom out with the scroll wheel. It looks cooler when zoomed out a bit.
REM Project: Colorful Spinny Spiraly Thingy
REM Created: 1/4/2009 1:47:54 PM
REM
REM ***** Main Source File *****
REM
Global MMX as Float
Global MMY as Float
Global MMZ as Float
Global Ang as Float
Global Height as Float
Global Dist as Float : Dist = 45.0
Global Iter as Float
Global NumSteps as Float
Global StepWidth as Float
Global StepHeight as Float
Global Speed as Float
Set Display Mode 1024, 768, 32
Sync On
Sync Rate 60
AutoCam Off
Randomize Timer( )
Set Ambient Light 100
Color Backdrop RGB( 0, 191, 255 )
Set Text Font "Tahoma"
Set Text Size 16
Hide Mouse
Speed = 0.5
GrabImages( )
InitCamera( )
CreateThingy( 40, 15.0, 0.8, 4.0 )
Do
Box 54, 54, 254, 104, 0, 0, 0, 0
Box 50, 50, 250, 100, RGB( 255, 140, 0 ), RGB( 255, 255, 0 ), RGB( 255, 140, 0 ), RGB( 255, 255, 0 )
Ink 0, 0
Center Text 150, 60, "Move the mouse to rotate"
Center Text 150, 80, "the camera."
UpdateCamera( )
UpdateThingy( )
Sync
Loop
Function CreateThingy( NumberOfSteps as Float, StepW as Float, StepH as Float, StepZ as Float )
NumSteps = NumberOfSteps
StepWidth = StepW
StepHeight = StepH
Make Object Box 1, StepWidth, StepHeight, StepZ
Texture Object 1, Rnd( 2 ) + 1
For I = 2 to NumSteps
Iter = I
Make Object Box I, StepWidth, StepHeight, StepZ
Make Mesh From Object I, I
Delete Object I
Add Limb 1, I - 1, I
Link Limb 1, I - 2, I - 1
Offset Limb 1, I - 1, StepWidth / 2, StepHeight, 0.0
Texture Limb 1, I - 1, ( ( I + 4 ) Mod 6 ) + 1
Delete Mesh I
Next I
Set Object Light 1, 0
EndFunction
Function UpdateThingy( )
For I = 0 to NumSteps - 1
Rotate Limb 1, I, 0.0, Limb Angle Y( 1, I ) + Speed, 0.0
Next I
EndFunction
Function GrabImages( )
For I = 1 to 6
Select I - 1
Case 0
Ink RGB( 255, 0, 0 ), 0
EndCase
Case 1
Ink RGB( 255, 140, 0 ), 0
EndCase
Case 2
Ink RGB( 255, 255, 0 ), 0
EndCase
Case 3
Ink RGB( 34, 139, 34 ), 0
EndCase
Case 4
Ink RGB( 0, 0, 205 ), 0
Endcase
Case 5
Ink RGB( 148, 0, 211 ), 0
EndCase
EndSelect
Box 0, 0, 1, 1
Get Image I, 0, 0, 1, 1
Next I
EndFunction
Function InitCamera( )
Position Camera 0.0, 0.0, -60.0
Point Camera 0.0, 0.0, 0.0
EndFunction
Function UpdateCamera( )
MMX = MouseMoveX( )
MMY = MouseMoveY( )
MMZ = MouseMoveZ( )
Inc Ang, -MMX / 2.0
Inc Height, MMY / 20.0
If Dist >= 5.0
Inc Dist, MMZ / -5.0
Else
Dist = 5.0
EndIf
Position Camera Sin( Ang ) * Dist, Height, Cos( Ang ) * Dist
Point Camera 0.0, NumSteps * StepHeight / 2, 0.0
EndFunction