TGC Codebase Backup



Sphere Hopper (Level 3) by Daygamer

6th Mar 2009 14:06
Summary

Jump gaps, ride moving platform and dodge enemies. No Media!



Description

Like I said on level 2 if you are reading this and you haven't played the previous levels you might want to play them before you venture into this one. The third level of Sphere Hopper is the hardest by far. The enemies are fast. The gaps are large. There are not very many moving platforms. And it all comes down to the difficult, dramatic ending at the end of level 3. You must stay on a moving platform with out falling off while dodging enemies. The moving platform carries you all over the place, and eventually leads to the Final End Gate. I only know of a couple of people that have beaten it. If you find it impossible then don't feel bad. Good Luck!!!



Code
                                    ` This code was downloaded from The Game Creators
                                    ` It is reproduced here with full permission
                                    ` http://www.thegamecreators.com
                                    
                                    hide mouse
ink rgb(85,0,85),0

Menu:
cls
do
set text size 30 : center text 320,50,"PRESS SPACE TO PLAY OR"
set text size 30 : center text 320,90,"PRESS ENTER TO SEE CONTROLS"
if spacekey()=1
gosub L3
endif
if returnkey()=1
gosub HTP
endif
loop

HTP:
cls
wait 200
set text size 25 : center text 200,30,"UP = MOVE FORWARD"
set text size 25 : center text 200,70,"DOWN = MOVE BACKWARD"
set text size 25 : center text 200,110,"RIGHT = TURN RIGHT"
set text size 25 : center text 500,30,"LEFT = TURN LEFT"
set text size 25 : center text 500,70,"SPACE = JUMP"
set text size 25 : center text 500,110,"P = PAUSE"
set text size 20 : center text 320,170,"PRESS ENTER TO RETURN TO MENU"
do
if returnkey()=1
gosub Menu
endif
loop

rem level 3 ================================================================
L3:
cls
set text size 80 : center text 320,170,"SPHERE HOPPER"
wait 1000
set text size 70 : center text 320,250,"LEVEL 3"
wait 3000
cls
autocam off : hide mouse
sync on : sync rate 30
ink rgb(1000,1000,1000),0

rem put controled object in level 3
make object sphere 1,1.5
color object 1,rgb(30,30,225)
position object 1,0,20005,0
point object 1,0,20005,100
make object collision box 1,-0.5,-0.5,-0.5,0.5,0.5,0.5,0

rem end gate
make object sphere 95,8
color object 95,rgb(30,30,225)
position object 95,-570,20011.5,30
ghost object on 95

make object box 94,5,0,5
position object 94,-570,20012,30
hide object 94

rem sky
color backdrop 0

rem ground boxes
make object box 3,20,2,10
position object 3,0,20000,0
color object 3,rgb(85,0,85)
make static object 3
objx#=object position x(3)
objy#=object position y(3)
objz#=object position z(3)
objsx#=object size x(3)/2.0
objsy#=object size y(3)/2.0
objsz#=object size z(3)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 4,20,2,20
position object 4,0,20000,25
color object 4,rgb(85,0,85)
make static object 4
objx#=object position x(4)
objy#=object position y(4)
objz#=object position z(4)
objsx#=object size x(4)/2.0
objsy#=object size y(4)/2.0
objsz#=object size z(4)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 5,20,2,40
position object 5,0,20000,-35
color object 5,rgb(85,0,85)
make static object 5
objx#=object position x(5)
objy#=object position y(5)
objz#=object position z(5)
objsx#=object size x(5)/2.0
objsy#=object size y(5)/2.0
objsz#=object size z(5)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 6,20,2,15
position object 6,0,20015,-70
color object 6,rgb(85,0,85)
make static object 6
objx#=object position x(6)
objy#=object position y(6)
objz#=object position z(6)
objsx#=object size x(6)/2.0
objsy#=object size y(6)/2.0
objsz#=object size z(6)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 7,20,2,15
position object 7,0,20015,-15
color object 7,rgb(85,0,85)
make static object 7
objx#=object position x(7)
objy#=object position y(7)
objz#=object position z(7)
objsx#=object size x(7)/2.0
objsy#=object size y(7)/2.0
objsz#=object size z(7)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 8,20,2,10
position object 8,0,20003.5,-62
color object 8,rgb(85,0,85)
make static object 8
objx#=object position x(8)
objy#=object position y(8)
objz#=object position z(8)
objsx#=object size x(8)/2.0
objsy#=object size y(8)/2.0
objsz#=object size z(8)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 9,20,2,10
position object 9,0,20007,-74
color object 9,rgb(85,0,85)
make static object 9
objx#=object position x(9)
objy#=object position y(9)
objz#=object position z(9)
objsx#=object size x(9)/2.0
objsy#=object size y(9)/2.0
objsz#=object size z(9)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 10,20,2,10
position object 10,0,20010.5,-86
color object 10,rgb(85,0,85)
make static object 10
objx#=object position x(10)
objy#=object position y(10)
objz#=object position z(10)
objsx#=object size x(10)/2.0
objsy#=object size y(10)/2.0
objsz#=object size z(10)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 11,30,2,13
position object 11,-25,20000,28.5
color object 11,rgb(85,0,85)
make static object 11
objx#=object position x(11)
objy#=object position y(11)
objz#=object position z(11)
objsx#=object size x(11)/2.0
objsy#=object size y(11)/2.0
objsz#=object size z(11)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 12,30,2,13
position object 12,-50,20000,21.5
color object 12,rgb(85,0,85)
make static object 12
objx#=object position x(12)
objy#=object position y(12)
objz#=object position z(12)
objsx#=object size x(12)/2.0
objsy#=object size y(12)/2.0
objsz#=object size z(12)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 13,30,2,7
position object 13,-72.5,20000,31.5
color object 13,rgb(85,0,85)
make static object 13
objx#=object position x(13)
objy#=object position y(13)
objz#=object position z(13)
objsx#=object size x(13)/2.0
objsy#=object size y(13)/2.0
objsz#=object size z(13)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 14,7,2,20
position object 14,-86,20000,25
color object 14,rgb(85,0,85)
make static object 14
objx#=object position x(14)
objy#=object position y(14)
objz#=object position z(14)
objsx#=object size x(14)/2.0
objsy#=object size y(14)/2.0
objsz#=object size z(14)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 15,7,2,25
position object 15,-106,20000,25
color object 15,rgb(85,0,85)
make static object 15
objx#=object position x(15)
objy#=object position y(15)
objz#=object position z(15)
objsx#=object size x(15)/2.0
objsy#=object size y(15)/2.0
objsz#=object size z(15)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 16,20,2,7
position object 16,-116,20000,16
color object 16,rgb(85,0,85)
make static object 16
objx#=object position x(16)
objy#=object position y(16)
objz#=object position z(16)
objsx#=object size x(16)/2.0
objsy#=object size y(16)/2.0
objsz#=object size z(16)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 17,20,2,7
position object 17,-116,20000,34
color object 17,rgb(85,0,85)
make static object 17
objx#=object position x(17)
objy#=object position y(17)
objz#=object position z(17)
objsx#=object size x(17)/2.0
objsy#=object size y(17)/2.0
objsz#=object size z(17)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 18,7,2,7
position object 18,-166,20000,17
color object 18,rgb(85,0,85)
make static object 18
objx#=object position x(18)
objy#=object position y(18)
objz#=object position z(18)
objsx#=object size x(18)/2.0
objsy#=object size y(18)/2.0
objsz#=object size z(18)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 19,7,2,7
position object 19,-182,20002,20
color object 19,rgb(85,0,85)
make static object 19
objx#=object position x(19)
objy#=object position y(19)
objz#=object position z(19)
objsx#=object size x(19)/2.0
objsy#=object size y(19)/2.0
objsz#=object size z(19)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 20,7,2,7
position object 20,-185,20007.5,37.5
color object 20,rgb(85,0,85)
make static object 20
objx#=object position x(20)
objy#=object position y(20)
objz#=object position z(20)
objsx#=object size x(20)/2.0
objsy#=object size y(20)/2.0
objsz#=object size z(20)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 21,7,2,7
position object 21,-215,20005,30
color object 21,rgb(85,0,85)
make static object 21
objx#=object position x(21)
objy#=object position y(21)
objz#=object position z(21)
objsx#=object size x(21)/2.0
objsy#=object size y(21)/2.0
objsz#=object size z(21)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 22,7,2,7
position object 22,-220,20010,18
color object 22,rgb(85,0,85)
make static object 22
objx#=object position x(22)
objy#=object position y(22)
objz#=object position z(22)
objsx#=object size x(22)/2.0
objsy#=object size y(22)/2.0
objsz#=object size z(22)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 23,7,2,7
position object 23,-220,20010,-10
color object 23,rgb(85,0,85)
make static object 23
objx#=object position x(23)
objy#=object position y(23)
objz#=object position z(23)
objsx#=object size x(23)/2.0
objsy#=object size y(23)/2.0
objsz#=object size z(23)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 24,7,2,7
position object 24,-280,20010,18
color object 24,rgb(85,0,85)
make static object 24
objx#=object position x(24)
objy#=object position y(24)
objz#=object position z(24)
objsx#=object size x(24)/2.0
objsy#=object size y(24)/2.0
objsz#=object size z(24)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 25,7,2,30
position object 25,-300,20010,23
color object 25,rgb(85,0,85)
make static object 25
objx#=object position x(25)
objy#=object position y(25)
objz#=object position z(25)
objsx#=object size x(25)/2.0
objsy#=object size y(25)/2.0
objsz#=object size z(25)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 26,35,2,7
position object 26,-320,20010,34.5
color object 26,rgb(85,0,85)
make static object 26
objx#=object position x(26)
objy#=object position y(26)
objz#=object position z(26)
objsx#=object size x(26)/2.0
objsy#=object size y(26)/2.0
objsz#=object size z(26)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 27,7,2,30
position object 27,-340,20010,23
color object 27,rgb(85,0,85)
make static object 27
objx#=object position x(27)
objy#=object position y(27)
objz#=object position z(27)
objsx#=object size x(27)/2.0
objsy#=object size y(27)/2.0
objsz#=object size z(27)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 28,7,2,7
position object 28,-360,20010,18
color object 28,rgb(85,0,85)
make static object 28
objx#=object position x(28)
objy#=object position y(28)
objz#=object position z(28)
objsx#=object size x(28)/2.0
objsy#=object size y(28)/2.0
objsz#=object size z(28)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 29,7,2,7
position object 29,-360,20010,32
color object 29,rgb(85,0,85)
make static object 29
objx#=object position x(29)
objy#=object position y(29)
objz#=object position z(29)
objsx#=object size x(29)/2.0
objsy#=object size y(29)/2.0
objsz#=object size z(29)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 30,7,2,30
position object 30,-380,20010,21
color object 30,rgb(85,0,85)
make static object 30
objx#=object position x(30)
objy#=object position y(30)
objz#=object position z(30)
objsx#=object size x(30)/2.0
objsy#=object size y(30)/2.0
objsz#=object size z(30)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 31,30,2,7
position object 31,-391.5,20010,9.5
color object 31,rgb(85,0,85)
make static object 31
objx#=object position x(31)
objy#=object position y(31)
objz#=object position z(31)
objsx#=object size x(31)/2.0
objsy#=object size y(31)/2.0
objsz#=object size z(31)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 32,7,2,45
position object 32,-391.5,20010,-15
color object 32,rgb(85,0,85)
make static object 32
objx#=object position x(32)
objy#=object position y(32)
objz#=object position z(32)
objsx#=object size x(32)/2.0
objsy#=object size y(32)/2.0
objsz#=object size z(32)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 33,20,2,7
position object 33,-398,20010,-40.5
color object 33,rgb(85,0,85)
make static object 33
objx#=object position x(33)
objy#=object position y(33)
objz#=object position z(33)
objsx#=object size x(33)/2.0
objsy#=object size y(33)/2.0
objsz#=object size z(33)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 34,7,2,33
position object 34,-408.5,20010,-53.5
color object 34,rgb(85,0,85)
make static object 34
objx#=object position x(34)
objy#=object position y(34)
objz#=object position z(34)
objsx#=object size x(34)/2.0
objsy#=object size y(34)/2.0
objsz#=object size z(34)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 35,14,2,20
position object 35,-405,20010,-71.5
color object 35,rgb(85,0,85)
make static object 35
objx#=object position x(35)
objy#=object position y(35)
objz#=object position z(35)
objsx#=object size x(35)/2.0
objsy#=object size y(35)/2.0
objsz#=object size z(35)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 36,20,2,20
position object 36,-570,20010,30
color object 36,rgb(85,0,85)
make static object 36
objx#=object position x(36)
objy#=object position y(36)
objz#=object position z(36)
objsx#=object size x(36)/2.0
objsy#=object size y(36)/2.0
objsz#=object size z(36)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 37,7,2,40
position object 37,-320,20010,54.5
color object 37,rgb(85,0,85)
make static object 37
objx#=object position x(37)
objy#=object position y(37)
objz#=object position z(37)
objsx#=object size x(37)/2.0
objsy#=object size y(37)/2.0
objsz#=object size z(37)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 38,7,2,7
position object 38,-320,20015.5,71
color object 38,rgb(85,0,85)
make static object 38
objx#=object position x(38)
objy#=object position y(38)
objz#=object position z(38)
objsx#=object size x(38)/2.0
objsy#=object size y(38)/2.0
objsz#=object size z(38)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 39,20,2,20
position object 39,-280,20012,71
color object 39,rgb(85,0,85)
make static object 39
objx#=object position x(39)
objy#=object position y(39)
objz#=object position z(39)
objsx#=object size x(39)/2.0
objsy#=object size y(39)/2.0
objsz#=object size z(39)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 40,7,2,7
position object 40,-280,20015,87
color object 40,rgb(85,0,85)
make static object 40
objx#=object position x(40)
objy#=object position y(40)
objz#=object position z(40)
objsx#=object size x(40)/2.0
objsy#=object size y(40)/2.0
objsz#=object size z(40)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 41,7,2,7
position object 41,-290,20020,87
color object 41,rgb(85,0,85)
make static object 41
objx#=object position x(41)
objy#=object position y(41)
objz#=object position z(41)
objsx#=object size x(41)/2.0
objsy#=object size y(41)/2.0
objsz#=object size z(41)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 42,7,2,7
position object 42,-290,20025,77
color object 42,rgb(85,0,85)
make static object 42
objx#=object position x(42)
objy#=object position y(42)
objz#=object position z(42)
objsx#=object size x(42)/2.0
objsy#=object size y(42)/2.0
objsz#=object size z(42)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 43,7,2,7
position object 43,-280,20030,77
color object 43,rgb(85,0,85)
make static object 43
objx#=object position x(43)
objy#=object position y(43)
objz#=object position z(43)
objsx#=object size x(43)/2.0
objsy#=object size y(43)/2.0
objsz#=object size z(43)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 44,7,2,7
position object 44,-280,20035,87
color object 44,rgb(85,0,85)
make static object 44
objx#=object position x(44)
objy#=object position y(44)
objz#=object position z(44)
objsx#=object size x(44)/2.0
objsy#=object size y(44)/2.0
objsz#=object size z(44)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 45,7,2,7
position object 45,-290,20040,87
color object 45,rgb(85,0,85)
make static object 45
objx#=object position x(45)
objy#=object position y(45)
objz#=object position z(45)
objsx#=object size x(45)/2.0
objsy#=object size y(45)/2.0
objsz#=object size z(45)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 46,7,2,7
position object 46,-290,20045,77
color object 46,rgb(85,0,85)
make static object 46
objx#=object position x(46)
objy#=object position y(46)
objz#=object position z(46)
objsx#=object size x(46)/2.0
objsy#=object size y(46)/2.0
objsz#=object size z(46)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 47,7,2,7
position object 47,-280,20050,77
color object 47,rgb(85,0,85)
make static object 47
objx#=object position x(47)
objy#=object position y(47)
objz#=object position z(47)
objsx#=object size x(47)/2.0
objsy#=object size y(47)/2.0
objsz#=object size z(47)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

make object box 48,10,2,10
position object 48,-280,20053,65
color object 48,rgb(85,0,85)
make static object 48
objx#=object position x(48)
objy#=object position y(48)
objz#=object position z(48)
objsx#=object size x(48)/2.0
objsy#=object size y(48)/2.0
objsz#=object size z(48)/2.0
make static collision box objx#-objsx#,objy#-objsy#,objz#-objsz#,objx#+objsx#,objy#+objsy#,objz#+objsz#

rem jewels
make object cube 181,1
make object cone 81,1 : xrotate object 81,180 : color object 81,rgb(750,10,0)
position object 81,0,20017,-15
position object 181,0,20017,-15
hide object 181

make object cube 182,1
make object cone 82,1 : xrotate object 82,180 : color object 82,rgb(750,10,0)
position object 82,-60,20002,20
position object 182,-60,20002,20
hide object 182

make object cube 183,1
make object cone 83,1 : xrotate object 83,180 : color object 83,rgb(750,10,0)
position object 83,-220,20012,-10
position object 183,-220,20012,-10
hide object 183

make object cube 164,1
make object cone 64,1 : xrotate object 64,180 : color object 64,rgb(750,10,0)
position object 64,-391.5,20012.5,-25
position object 164,-391.5,20012.5,-25
hide object 164

make object cube 165,1
make object cone 65,1 : xrotate object 65,180 : color object 65,rgb(750,10,0)
position object 65,-443,20012,-57.5
position object 165,-443,20012,-57.5
hide object 165

make object cube 166,1
make object cone 66,1 : xrotate object 66,180 : color object 66,rgb(750,10,0)
position object 66,-280,20055,65
position object 166,-280,20055,65
hide object 166

rem jewel conterparts
make object cone 281,1 : xrotate object 281,180
position object 281,-575,20018.75,30.5

make object cone 282,1 : xrotate object 282,180
position object 282,-573,20018.75,30.5

make object cone 283,1 : xrotate object 283,180
position object 283,-571,20018.75,30.5

make object cone 264,1 : xrotate object 264,180
position object 264,-569,20018.75,30.5

make object cone 265,1 : xrotate object 265,180
position object 265,-567,20018.75,30.5

make object cone 266,1 : xrotate object 266,180
position object 266,-565,20018.75,30.5

rem moving platforms
make object box 120,8,1,8
color object 120,rgb(0,100,0)
position object 120,0,20015,-35
make object collision box 120,-5,-1,-5,5,1,5,0

make object box 119,8,1,8
color object 119,rgb(0,100,0)
position object 119,-116,20000,25
point object 119,-106,20000,25
make object collision box 119,-5,-1,-5,5,1,5,0

make object box 117,8,1,8
color object 117,rgb(0,100,0)
position object 117,-250,20010,18
point object 117,-220,20010,18
make object collision box 117,-5,-1,-5,5,1,5,0

make object box 118,8,1,8
color object 118,rgb(0,100,0)
position object 118,-418,20010,-71.5
point object 118,-430,20010,-71.5
make object collision box 118,-5,-1,-5,5,1,5,0

rem enimies
make object box 236,5,5,5
color object 236,rgb(1000,10,10)
position object 236,-35,20002.5,25
point object 236,-35,20002.5,35

make object box 237,5,5,5
color object 237,rgb(1000,10,10)
position object 237,-72.5,20002.5,31.5
point object 237,-85,20002.5,31.5

make object box 238,5,5,5
color object 238,rgb(1000,10,10)
position object 238,-86,20002.5,25
point object 238,-86,20002.5,25

make object box 229,5,5,5
color object 229,rgb(1000,10,10)
position object 229,-300,20012.5,23
point object 229,-300,20012.5,40

make object box 230,5,5,5
color object 230,rgb(1000,10,10)
position object 230,-340,20012.5,23
point object 230,-340,20012.5,40

make object box 231,5,5,5
color object 231,rgb(1000,10,10)
position object 231,-360,20012.5,25
point object 231,-360,20012.5,10.5

make object box 222,5,5,5
color object 222,rgb(1000,10,10)
position object 222,-391.5,20012.5,-5
point object 222,-404,20012.5,-5

make object box 223,5,5,5
color object 223,rgb(1000,10,10)
position object 223,-391.5,20012.5,-20
point object 223,-404,20012.5,-20

make object box 224,5,5,5
color object 224,rgb(1000,10,10)
position object 224,-391.5,20012.5,-25
point object 224,-379,20012.5,-25

make object box 225,5,5,5
color object 225,rgb(1000,10,10)
position object 225,-398,20012.5,-40.5
point object 225,-408.5,20012.5,-40.5

make object box 226,5,5,5
color object 226,rgb(1000,10,10)
position object 226,-500,20012.5,-46
point object 226,-500,20012.5,-60

make object box 227,5,5,5
color object 227,rgb(1000,10,10)
position object 227,-550,20012.5,-46
point object 227,-550,20012.5,-30

make object box 228,5,5,5
color object 228,rgb(1000,10,10)
position object 228,-570,20012.5,0
point object 228,-586,20012.5,0

rem stoppers
make object box 300,1,1,1
position object 300,-35,20002.5,35
hide object 300

make object box 301,1,1,1
position object 301,-35,20002.5,15
hide object 301

make object box 302,1,1,1
position object 302,-57.5,20002.5,31.5
hide object 302

make object box 303,1,1,1
position object 303,-87.5,20002.5,31.5
hide object 303

make object box 304,1,1,1
position object 304,-86,20002.5,35
hide object 304

make object box 305,1,1,1
position object 305,-86,20002.5,15
hide object 305

make object box 306,1,1,1
position object 306,-170.5,20000,26
hide object 306

make object box 307,1,1,1
position object 307,-300,20012.5,38
hide object 307

make object box 308,1,1,1
position object 308,-300,20012.5,8
hide object 308

make object box 309,1,1,1
position object 309,-340,20012.5,38
hide object 309

make object box 310,1,1,1
position object 310,-340,20012.5,8
hide object 310

make object box 311,1,1,1
position object 311,-360,20012.5,35.5
hide object 311

make object box 312,1,1,1
position object 312,-360,20012.5,14.5
hide object 312

make object box 313,1,1,1
position object 313,-404,20012.5,-5
hide object 313

make object box 314,1,1,1
position object 314,-379,20012.5,-5
hide object 314

make object box 315,1,1,1
position object 315,-404,20012.5,-20
hide object 315

make object box 316,1,1,1
position object 316,-379,20012.5,-20
hide object 316

make object box 317,1,1,1
position object 317,-404,20012.5,-25
hide object 317

make object box 318,1,1,1
position object 318,-379,20012.5,-25
hide object 318

make object box 319,1,1,1
position object 319,-412,20012.5,-40.5
hide object 319

make object box 320,1,1,1
position object 320,-388,20012.5,-40.5
hide object 320

make object box 321,8,0.1,8
position object 321,-418,20011,-71.5
hide object 321

make object box 322,1,1,1
position object 322,-418,20015,-80
hide object 322

make object box 323,1,1,1
position object 323,-418,20015,-82
hide object 323

make object box 324,1,1,1
position object 324,-445,20010,-71.5
hide object 324

make object box 325,1,1,1
position object 325,-445,20010,-46
hide object 325

make object box 326,1,1,1
position object 326,-500,20012.5,-60
hide object 326

make object box 327,1,1,1
position object 327,-500,20012.5,-30
hide object 327

make object box 328,1,1,1
position object 328,-550,20012.5,-60
hide object 328

make object box 329,1,1,1
position object 329,-550,20012.5,-30
hide object 329

make object box 330,1,1,1
position object 330,-585,20010,-46
hide object 330

make object box 331,1,1,1
hide object 331

make object box 332,1,1,1
position object 332,-524,20010,80
hide object 332

make object box 333,1,1,1
position object 333,-620,20010,84
hide object 333

make object box 334,1,1,1
position object 334,-620,20010,-30
hide object 334

make object box 335,1,1,1
position object 335,-566,20010,-30
hide object 335

make object box 336,1,1,1
position object 336,-570,20010,30
hide object 336

make object box 337,1,1,1
position object 337,-586,20012.5,0
hide object 337

make object box 338,1,1,1
position object 338,-554,20012.5,0
hide object 338

make object box 350,3000,100,3000
position object 350,0,19920,0
hide object 350

rem start off player gravity
playergrav#=0.1

rem main loop --------------------------------------------------------------
do

rem level 3 print
center text 320,20,"LEVEL 3"
set text to italic
set text size 40

rem move platforms and enimies; rotate jewels
move object 120,-0.12
move object 119,0.12
move object 117,0.12
move object 236,-0.3
move object 237,-0.3
move object 238,-0.3
move object 229,-0.3
move object 230,-0.3
move object 231,-0.3
move object 222,-0.3
move object 223,-0.3
move object 224,-0.3
move object 225,-0.3
move object 226,-0.3
move object 227,-0.3
move object 228,-0.3
yrotate object 81,wrapvalue(object angle y(81)-2)
yrotate object 82,wrapvalue(object angle y(82)-2)
yrotate object 83,wrapvalue(object angle y(83)-2)
yrotate object 64,wrapvalue(object angle y(64)-2)
yrotate object 65,wrapvalue(object angle y(65)-2)
yrotate object 66,wrapvalue(object angle y(66)-2)

rem jewel pickup
if object collision(1,181) then hide object 81 : position object 181,0,20000,0 : color object 281,rgb(750,10,0)
if object collision(1,182) then hide object 82 : position object 182,0,20000,0 : color object 282,rgb(750,10,0)
if object collision(1,183) then hide object 83 : position object 183,0,20000,0 : color object 283,rgb(750,10,0)
if object collision(1,164) then hide object 64 : position object 164,0,20000,0 : color object 265,rgb(750,10,0)
if object collision(1,165) then hide object 65 : position object 165,0,20000,0 : color object 266,rgb(750,10,0)
if object collision(1,166) then hide object 66 : position object 166,0,20000,0 : color object 264,rgb(750,10,0)

if object collision(3,181) then yrotate object 281,wrapvalue(object angle y(281)-4)
if object collision(3,182) then yrotate object 282,wrapvalue(object angle y(282)-4)
if object collision(3,183) then yrotate object 283,wrapvalue(object angle y(283)-4)
if object collision(3,164) then yrotate object 265,wrapvalue(object angle y(265)-4)
if object collision(3,165) then yrotate object 266,wrapvalue(object angle y(266)-4)
if object collision(3,166) then yrotate object 264,wrapvalue(object angle y(264)-4)

rem control moving platforms
if object collision(120,6) then position object 120,0,20015,-22.5

if object collision(119,15) then point object 119,-170.5,20000,26
if object collision(119,306) then point object 119,-106,20000,25

if object collision(117,22) then point object 117,-280,20010,18
if object collision(117,24) then point object 117,-220,20010,18
if object collision(1,321) then position object 323,-418,20015,-80 : position object 321,-418,0,-71.5
if object collision(322,323) then move object 118,0.12
if object collision(118,324) then point object 118,-445,20010,-46
if object collision(118,325) then point object 118,-585,20010,-46
if object collision(118,330) then point object 118,-525,20010,-46 : position object 331,-520,20010,-46
if object collision(118,331) then point object 118,-524,20010,80
if object collision(118,332) then point object 118,-620,20010,84
if object collision(118,333) then point object 118,-620,20010,-30
if object collision(118,334) then point object 118,-575,20010,-30
if object collision(118,335) then point object 118,-570,20010,30
if object collision(118,336) then position object 118,0,10000,0

rem control enimies
if object collision(236,300) then point object 236,-35,20002.5,35
if object collision(236,301) then point object 236,-35,20002.5,15

if object collision(237,302) then point object 237,-60,20002.5,31.5
if object collision(237,303) then point object 237,-85,20002.5,31.5

if object collision(238,304) then point object 238,-86,20002.5,35
if object collision(238,305) then point object 238,-86,20002.5,15

if object collision(229,307) then point object 229,-300,20012.5,38
if object collision(229,308) then point object 229,-300,20012.5,8

if object collision(230,309) then point object 230,-340,20012.5,38
if object collision(230,310) then point object 230,-340,20012.5,8

if object collision(231,311) then point object 231,-360,20012.5,35.5
if object collision(231,312) then point object 231,-360,20012.5,14.5

if object collision(222,313) then point object 222,-404,20012.5,-5
if object collision(222,314) then point object 222,-379,20012.5,-5

if object collision(223,315) then point object 223,-404,20012.5,-20
if object collision(223,316) then point object 223,-379,20012.5,-20

if object collision(224,317) then point object 224,-404,20012.5,-25
if object collision(224,318) then point object 224,-379,20012.5,-25

if object collision(225,319) then point object 225,-412,20012.5,-40.5
if object collision(225,320) then point object 225,-388,20012.5,-40.5

if object collision(226,326) then point object 226,-500,20012.5,-60
if object collision(226,327) then point object 226,-500,20012.5,-30

if object collision(227,328) then point object 227,-550,20012.5,-60
if object collision(227,329) then point object 227,-550,20012.5,-30

if object collision(228,337) then point object 228,-1586,20012.5,0
if object collision(228,338) then point object 228,554,20012.5,0

rem game over
if object collision(1,350) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,350) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.58
if object collision(1,236) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,236) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5
if object collision(1,237) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,237) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5
if object collision(1,238) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,238) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,229) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,229) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,230) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,230) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,231) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,231) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,222) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,222) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,223) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,223) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,224) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,224) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,225) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,225) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,226) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,226) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,227) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,227) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38
if object collision(1,228) then position object 323,-418,20015,-82 : position object 118,-418,20010,-71.5 : position object 331,0,0,0
if object collision(1,228) then wait 3000 : position object 1,0,20005,0 : point object 1,0,20005,100 : point object 118,-430,20010,-71.5 : position object 321,-418,20011,-71.5 : stop sound 38

rem enter endgate
if object collision(1,94) then if spacekey()=1
delete object 3
delete object 4
delete object 5
delete object 6
delete object 7
delete object 8
delete object 9
delete object 10
delete object 11
delete object 12
delete object 13
delete object 14
delete object 15
delete object 16
delete object 17
delete object 18
delete object 19
delete object 20
delete object 21
delete object 22
delete object 23
delete object 24
delete object 25
delete object 26
delete object 27
delete object 28
delete object 29
delete object 30
delete object 31
delete object 32
delete object 33
delete object 34
delete object 35
delete object 36
delete object 300
delete object 301
delete object 302
delete object 303
delete object 304
delete object 305
delete object 306
delete object 307
delete object 308
delete object 309
delete object 310
delete object 311
delete object 312
delete object 313
delete object 314
delete object 315
delete object 316
delete object 317
delete object 318
delete object 319
delete object 320
delete object 321
delete object 322
delete object 323
delete object 324
delete object 325
delete object 326
delete object 327
delete object 328
delete object 329
delete object 330
delete object 331
delete object 332
delete object 333
delete object 334
delete object 335
delete object 336
delete object 337
delete object 338
delete object 350
gosub W
endif

rem store old positions
oldposx#=object position x(1)
oldposy#=object position y(1)
oldposz#=object position z(1)

rem controls
if upkey()=1 then move object 1,0.35
if downkey()=1 then move object 1,-0.35
if leftkey()=1 then yrotate object 1,wrapvalue(object angle y(1)-3)
if rightkey()=1 then yrotate object 1,wrapvalue(object angle y(1)+3)
if spacekey()=1 and playergrav#=0 then playergrav#=0.35
if inkey$()="p" then wait 500 : suspend for key

rem get current object position
posx#=object position x(1)
posy#=object position y(1)
posz#=object position z(1)

rem gravity
playergrav#=playergrav#-0.01
posy#=posy#+playergrav#

rem sliding collision
position object 1,posx#,posy#,posz#
if object collision(1,0)>0
	dec posx#,get object collision x()
	dec posy#,get object collision y()
	dec posz#,get object collision z()
	playergrav#=-0.0
endif

rem Set size for controled object
s#=object size y(1)/2.0

rem Ensure camera stays out of static boxes
if get static collision hit(oldposx#-s#,oldposy#-s#,oldposz#-s#,oldposx#+s#,oldposy#+s#,oldposz#+s#,posx#-s#,posy#-s#,posz#-s#,posx#+s#,posy#+s#,posz#+s#)=1
	dec posx#,get static collision x()
	dec posy#,get static collision y()
	dec posz#,get static collision z()	
	if get static collision y()<>0.0 then playergrav#=0.0
endif

rem Update with new object position
position object 1,posx#,posy#,posz#

rem camera
angle#=object angle y(1)
camdist#=5.5 : camhigh#=posy#+0.8 : camfade#=3.5
set camera to follow posx#,posy#,posz#,angle#,camdist#,camhigh#,camfade#,1
xrotate camera 10

rem end loop
sync
loop

rem win
W:
do
set text to bold : set text size 60 : center text 320,70,"CONGRATULATIONS"
set text size 40 : center text 320,130,"TRY THE OTHER TWO LEVELS"
loop
suspend for key
end