İİİİİİİİmffİa/İffîfffŞmfÖİİİİİİİİİmffİff/İffîafŞmfÖİİİİİİİİİ°»U UUUU »UUU İİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİfİİİfİİmmÖfifİf™İmÖİİİİİİİİİmÖİmİİİİİmİÖİİİİİmÖfnmİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİmİİÖ™İÙmİİÙÙÙİÙİİİİİİİffÖİmmmİfffİf™Ö™–ff–îiiîîİİİİİİfİİİmmmmİİiİmii™İfn–fÖnmÖİİİİİİİİİÖİİİİİİÖİİİİÖİİÖİİÖİİİİİİİİİİİİmİÖİİaÖİmmÑİmmÑİÖÖÑİÖİŞİİİİİİaİİaÖmnmİİŞİímİİİÖîîîİŞíïİİİİmÖÑİİİÖÖmmİİİİİîîŞİÿıîİİİİİİİİİİİİİİİİİÖİİİİÑİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİÖİİİİmÙİİİİİİİİİİİİİİİİİİİİİİİİÙİİİİİİİİİİİİÙİİÖİİÙİİİİİİİİİİİİİİİmİİİİİİİİİİİİİİİİİİİİm–ÖİmİİmİİİfİİİİİÑİİfİİm™™Ùf™f™fi™™™‘éîm™éÖ™éé–éî–éîfŞmÑææfİîfİİnæfİÑifî™nmî™nfİİİİİİİİİİİİÑİİİİİÑİİİİİÑİİİÖİiİÙm™mİm™İ™–––mi–mÙfaÖ–™ÿÿîîïîîîşÿï™ÿşïîîşï™şÿÿ™ÿÿf™şÿî™éîffîî™iîî–ïŸîÖîùéfïşiÿşîéÖmİÖmmÙÖÖİİİmÙÖİiİ–İmmmİÙÑİİmmmİmİmİíİíİİİİíİİmİíaæİaÑİŞİŞíŞşÿıÙıİÿæıŞÿíıîşİîşİİßÿîáîíߪİıİîîİŞÿİÿİÿíííÿÿıßÿışîÿÿÿşîİşşÖİmİÖŞmÖŞmİİŞmÖŞfİİÙÑîİÖÑŞİfÑİİİİmİİİmİİİİİİİİÑİİİİİİİİİİİİíŞİİŞİİíÙİİİmÖİİfİİİİİßİİİİİmİŞÙİÙİmİİİŞİİİŞİİİİİİİmİİİİİİİİİÙİİİÙİİİİmİİİmİÖİİİİİÙİİİİİÖİİİÑİİÑaİİÑİİİÖmİİİŞİİİİİİİİİíİİiîî–é™i™áİÑÖİÖfİİÑî™ÙİéÙfîfm™áÙİÙî‘mm™İİİİİİİİİİİİÑİİİİİİİİİİÑÖİİİÙmİ–fİİiİÖmfİÑİİÑİİíÙéîîfîîïénîşÖéíîÙíá™ÑİŞa™ÑîşîæşïnŸéîæ骑‘ááÑİİİİféfiİÙÙÑnİÖİÖ™İmÑÑİİİİİİİİİİİ–ÖİmİİÑmİaÑÑÙmmŞİİmİİfİÑİmfÖİŞíßíİíşİİîîîıİíŞßİİŞŞmİîîİİŞîıïîïŞŞŞîşŞíßííİŞŞŞİİîŞİİíİfÑíÖİÑmÑİÑİİİÙİİÖİİİ–İİİÖİİİİİİİİİİmİİmÖİİİİİİİİİİİİİİİİŞİİİŞİÑİşİİİıİİİİİİİİİİİİİİÙİmfİİİİŞİıŞíİİİİŞİİíİİİİİİİİİİİİİİİİİİİİİÖmİİÖİİİİİİÑİÖİmÖİİİİİİİŞİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİmİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİmİÖmÖİİİİÖİİİİİİİİİİİİİİİİİİİİİİİİmİİİÖİİİİİİİİİİİİİİİİİİİİİİİİŞİİİİİİİ–İÙİİİİİİİİİİİİİİİİİ™İéîݙݙÙÙÙİmİ™–ÙİİİİİÙİİİİÙééiÙÖ™imİiÖÙİİİ™İİ™™İmİİİİÖÙ–mİİİİÖİİmİİİİmİÖÙİİİİİÖİmİİİİİmİİmİİİİmİİİmİİİİİİİİİİİİİİİİ–Öİí–iİæm™™fÖfİİİİmÖİİİmÖİİİİİİİnİÖÖÖİİİİİÑİİİİİİmİİmÖmfİİİİİİİ–İİm™ÑİmİÖÖÑİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİİiİİİÙİİİİİİİİİİİİİİİİfİİİİİİİİİİİİİİİİİİmİİİİİ™ÙÙİmİİİİİİİİİİİİİİİİİİİİİÙİİfİİmİİİİİİİİİİİİİİİe -- title: Flappy Bird Test
-- author: TehShadowz
-- desc: Just a fun test!
-- script: lua
-- input: mouse
-- width: 240
-- height: 136
y={lvl=68,speed=0,max=15}
pipe={}
ticks=0
tap=0
score={now=-2,max=0}
gamestate=0
statename={'menu','start','death'}
m={x=0,y=0,press=false,before=false,trigger=false}
--
function max(a,b,c)
if a>b then
if c then sfx(2,60,16) end
return a
else
return b
end
end
function piperender(a,b,c,d)
for i=0,120 do
if not(i>a[2]-24 and ia[2]-28 and ia[2]-27 and i12 and a[1]<28 then
if b.lvl<(a[2]-24) or b.lvl>(a[2]+8) then
c=2
sfx(3,36,64)
score.max=max(score.max,max(score.now,0))
score.now=max(score.now,0)
end
end
a[1]=a[1]-1
return a,c
end
function objupdate(a,b,c,d)
i=1
while a[i] do
a[i],d=b(a[i],c,d,i)
i=i+1
end
return a,d
end
function TIC()
m.x,m.y,m.press=mouse()
if m.press~=m.before and m.press then
m.trigger=true
else
m.trigger=false
end
m.before=m.press
cls(13)
pipe,gamestate=objupdate(pipe,piperender,y,gamestate)
rect(0,120,240,16,11)
rect(0,124,240,16,5)
--starting screen
if gamestate==0 then
rect (100,63,150,32,3)
rect (101,64,150,30,7)
print('Jump to start!',104,69,3)
print('Jump to start!',105,68,15)
print('Tap left click to jump!',104,77,3)
print('Tap left click to jump!',105,76,15)
print('Try not to hit the pipes!',104,85,3)
print('Try not to hit the pipes!',105,84,15)
if m.trigger then gamestate=1 y.speed=y.max sfx(1,48,8)end
--ingame
elseif gamestate==1 then
ticks=ticks+1
if y.speed>-y.max then y.speed=y.speed-1 end
if m.trigger and y.lvl>0 then
sfx(1,48,8)
y.speed=y.max
tap=ticks
end
y.lvl=y.lvl-y.speed/5
if ticks%120==60 then
pipe[ticks//120%5+1]={240,math.random(32,88)}
score.now=score.now+1
max(score.now,0,true)
end
pipe,gamestate=objupdate(pipe,pipecalc,y,gamestate)
if y.lvl>115 then
gamestate=2
sfx(3,36,64)
score.max=max(score.max,max(score.now,0))
score.now=max(score.now,0)
end
rect(0,105,56,17,3)
rect(0,106,55,15,7)
print('Score: '..max(score.now,0),9,111,3)
print('Score: '..max(score.now,0),10,110,15)
if ticks-tap<16 then
local animation=16+(ticks-tap)//4*4
spr(animation,6,y.lvl-8,13,1,0,0,4,4)
end
--death screen
elseif gamestate==2 then
if y.speed>-y.max then y.speed=y.speed-1 end
if y.lvl<115 then y.lvl=y.lvl-y.speed/5 end
rect (100,63,150,32,3)
rect (101,64,150,30,7)
print('You died! ',104,69,3)
print('You died! ',105,68,15)
print(score.now..' = Score',104,77,3)
print(score.now..' = Score',105,76,15)
print(score.max..' = High score',104,85,3)
print(score.max..' = High score',105,84,15)
if m.trigger then
gamestate=0
y.lvl=68
y.speed=25
pipe={}
ticks=0
tap=0
score.now=-2
end
end
--general
spr(ticks//5%2+1,20,y.lvl,13)
end
1 12 23 34 45 56 67 78 89 9: :; ;<