Thanks for the encouragement SMD, Neon Bunniez was in fact a remake of a concept I made when I was first messing around with AppGameKit about 18 months ago.
All there really was to Gravity Falls was figuring out how to put the gaps in the floors, the rest was fairly stock code (ie. I knew exactly what I wanted and how to code it).
in case anyone's interested, here's the code I ended up with for the gaps in the floors
function Spawn()
if timer()-spawnTime>delay rem delay=global delay between floors
spawnTime=timer()
inc score,1 rem score is a global
if score>50 then inc score,1
if score>100 then inc score,1
if score>150 then inc score,1
if score>200 then inc score,1
if delay>0.7 then delay=delay-0.01 rem decrease delay and increase the speed
if spd<0.25 then spd=spd+0.002
tmp=random(1,2) `number of breaks in the line
select tmp
case 1 `one gap in the floor
x1#=random(0,88) rem start x position of the break
if x1#>1 then AddWall(0,x1#) rem AddWall(xPosition,Width) is an existing function
if 100-x1#+12>1 then AddWall(x1#+12,100-x1#+12)
endcase
case 2 rem 2 gaps in the floor
x1#=random(0,88) rem start x position of first gap
x2#=random(0,88) rem start x position of second gap
if x1#<x2# rem figure out which gap comes first
if x1#>1 then AddWall(0,x1#)
if x2#-(x1#+12)>1 then AddWall(x1#+12,x2#-(x1#+12))
if 100-(x2#+12)>1 then AddWall(x2#+12,100-(x2#+12))
else
if x2#>1 then AddWall(0,x2#)
if x1#-(x2#+12)>1 then AddWall(x2#+12,x1#-(x2#+12))
if 100-(x1#+12)>1 then AddWall(x1#+12,100-(x1#+12))
endif
endcase
endselect
endif
endfunction
API functions
function DoWalls() rem move the walls up, delete after top of screen
for k=1 to 99
if GetSpriteExists(wall[k].id)
x#=GetSpriteX(wall[k].id)
y#=GetSpriteY(wall[k].id)
y#=y#-spd
SetSpritePosition(wall[k].id,x#,y#)
if y#<-10 then DeleteSprite(wall[k].id)
endif
next
endfunction
function AddWall(x#,w#)
rem find first available sprite position in wall array
for k=1 to 99
if GetSpriteExists(wall[k].id)=0
i=k
exit
endif
next
remstart
wall[] is an array that contains the SpriteIDs for all existing walls
they can then be automatically scrolled in DoWalls()
remend
wall[i].id=CreateSprite(img.line)
SetSpritePhysicsOn(wall[i].id,1) `make static object
SetSpriteSize(wall[i].id,w#,2)
SetSpritePosition(wall[i].id,x#,100)
endfunction
Now you know everything you need to clone my game