...the biggest anti-climax of the day!
Sorry. I had to do something like that. The code button doesn't normally work first time round. Anyway, Sky Roads now has sliding colour coded roads and friction. Fair enough, though, the Physics are a complete mess, but it's fun to play and extremely challenging. Anyway, enjoy.
remstart
Sliding Roads by Mad Matt Noble
Controls:
Rotate left - left cursor key
Rotate right - right cursor key
Accelerate (woo hoo) - up cursor key
Brake (aye right) - down cursor key
Objective:
You are the green cube, the aim is to stay on top of the white grid without
falling off the edge. To achieve this you must accelerate/brake and rotate
your way around the "sliding road". Or you could just go completely mental
and go flying off the end at 3 * 10^8 ms^-1(if you change the code and become light)
Evolution of winner of the March 2003 20-line competition. Now with:
- Sliding roads
- friction
- colour coded cubes
- big mad weird cube at the end
- Completely inaccurate laws of Physics - WAHEY!!! - There are slightly fewer limits!!! BAHAHAHAHA!!!
remend
sync on : sync rate 30 : randomize timer():hide mouse
make object cube 1,100 : position object 1,50,50,50 : make object cube 2,200 : position object 2,100,-99,100 : cubes=1
set object collision to boxes 1 : set object collision to boxes 2 : dim position(2) as integer : position(1)=1 : position(2)=1
color object 1,rgb(0,255,0)
`If it runs slowly change next line to "While position(2)<x" where x = size of level
while position(2)<200:forward=rnd(1):position(2)=position(2)+forward:If forward = 0 or rnd(6)>5 then position(1)=position(1)+rnd(2)-1
Make object cube cubes + 2,200:Position object cubes + 2,(200 * position(1)) - 100,-99,(200 * position(2)) - 100:set object collision to boxes cubes + 2:color object cubes + 2,rgb(0,0,255):cubes=cubes+1
endwhile:color backdrop rgb(0,0,0):make object cube cubes + 2,500:position object cubes+2,(200 * position(1)) - 100,250,(200 * position(2)) + 400
red=rnd(51)*5:green=rnd(51)*5:blue=rnd(51)*5:t = timer():do
speed# = speed# * 0.999:if upkey() then speed# = speed# + 0.1
if downkey() then speed# = speed# - 0.03
if leftkey() then yrotate object 1, object angle y(1) - 5
if rightkey() then yrotate object 1, object angle y(1) + 5
position object 1, newxvalue(object position x(1), object angle y(1), speed#), 50, newzvalue(object position z(1), object angle y(1), speed#)
position camera newxvalue(object position x(1), object angle y(1)-180, 200), 300, newzvalue(object position z(1), object angle y(1)-180,200) : point camera object position x(1), 200, object position z(1)
if object collision(1,0)=0 : print "Game Over! Final Score = ",object position z(1)," Final time = ",time : sync : wait 1000 : wait key
exit : endif : if timer()>t+1000 then inc time : t=timer():color object cubes + 2,rgb(red,green,blue)
set cursor 0,0 : Print "Score: " + str$(object position Z(1)) : set cursor 540,0 : print "Time: " + str$(time)
Yrotate object cubes + 2,wrapvalue(object angle Y(cubes + 2)+5):red=red+5:green=green+5:blue=blue+5:If red>=255 and green >= 255 and blue >= 255
red=rnd(51)*5:green=rnd(51)*5:blue=rnd(51)*5:endif:sync
For x = 2 to cubes - 2 step 2:position object x,object position X(x)+6.7 * (-1)^(x/2) * (-1)^time,-99+((-1)^(x/2)*0.1)+0.2,object position Z(x):color object x,rgb(255,127.5 * ((-1)^(x/2)+1),0):Next x:loop