0 Members and 2 Guests are viewing this topic.
playerImg=image.new("\020\000\000\000\020\000\000\000\000\000\000\000(\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\128\000\128\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\128")cubesX={1,5,7,6,4,6,4,1,3,2,3,7,8,9,1,2,3,4,2,6,7,1,9,1,2,3,4}cubesY={1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9}lastCube=1player=0speed=0.08moving=falsedir=1moveStart=0menu=truescore=0level=1color={225,170,0}rotation=0lastTick=0delay=0function render(gc) drawHorizon(gc) local size,x,y,i,polygon for j=1,27 do i=(j+lastCube-2)%27+1 size=100/(10-cubesY[i]) x=(cubesX[i]-7-player)/(10-cubesY[i])*150-size/2 y=5/(10-cubesY[i])*50-180 polygon=rotate({x,y,x+size,y,x+size,y+size,x,y+size,x,y}) if cubesY[i]>1 then gc:setColorRGB(color[1],color[2],color[3]) gc:fillPolygon(polygon) gc:setColorRGB(0,0,0) gc:drawPolyLine(polygon) end if y+size>3 and y<17 then if x<6 and x+size>-6 then menu=true score=math.floor(score) end end endendfunction rotate(p) local s,c=math.sin(rotation),math.cos(rotation) return {p[1]*c-p[2]*s+159,p[1]*s+p[2]*c+202,p[3]*c-p[4]*s+159,p[3]*s+p[4]*c+202,p[5]*c-p[6]*s+159,p[5]*s+p[6]*c+202,p[7]*c-p[8]*s+159,p[7]*s+p[8]*c+202,p[9]*c-p[10]*s+159,p[9]*s+p[10]*c+202}endfunction updateCubes() local step=menu and 0.06 or speed for i=1,27 do cubesY[i]=cubesY[i]+step*delay/30 if cubesY[i]>10 then if score%1000<800 then cubesX[i]=math.random(0,140)/10+player else cubesX[i]=math.random(0,140)/200+player+(i-1)%2*5+4.1 end cubesY[i]=cubesY[i]-9 lastCube=lastCube==1 and 27 or lastCube-1 end endendfunction updateMove() if moving then player=player+0.07*dir*delay/30 if math.abs(rotation)<0.15 or dir==rotation/math.abs(rotation) then rotation=rotation-0.005*dir*delay/30 end if timer.getMilliSecCounter()-moveStart>=150 then moving=false end else if math.abs(rotation)>0.005 then rotation=rotation-0.005*rotation/math.abs(rotation)*delay/30 end endendfunction drawPlayer(gc) if not menu then gc:drawImage(playerImg,149,192) endendfunction drawHorizon(gc) local s,c=math.sin(rotation),math.cos(rotation) gc:setColorRGB(0,0,0) gc:drawLine(s*142-c*200+159,202-c*142-s*200,c*200+s*142+159,s*200-c*142+202)endfunction drawMenu(gc) if menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",30) gc:drawString("CubeField",80,10,"top") gc:setFont("sansserif","b",12) gc:drawString("Press Enter",115,150,"top") local highscore=var.recall("highscore") if not highscore then var.store("highscore",0) highscore=0 end if score>highscore then var.store("highscore",score) document.markChanged() end local str="Score : "..tostring(score).." Highscore : "..tostring(highscore) gc:drawString(str,159-gc:getStringWidth(str)/2,100,"top") endendfunction drawScore(gc) if not menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",12) gc:drawString(tostring(math.floor(score)),2,0,"top") if score%1000>950 then gc:setFont("sansserif","r",30) gc:drawString("Speed Up !",80,10,"top") end endendfunction levelUp() speed=speed+0.02 level=level+1 if (level-1)%5==0 then color={225,170,0} elseif (level-1)%5==1 then color={0,0,255} elseif (level-1)%5==2 then color={100,100,100} elseif (level-1)%5==3 then color={90,255,0} elseif (level-1)%5==4 then color={255,255,255} endendfunction on.paint(gc) render(gc) drawPlayer(gc) drawMenu(gc) drawScore(gc) gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",8) gc:drawString("Lua CubeField - Par Loic Pujet",10,200,"top") updateFPS() timer.start(0.01)endfunction on.timer() timer.stop() updateCubes() updateMove() if not menu then score=score+delay/30 if score>level*1000 then levelUp() end end platform.window:invalidate()endfunction on.enterKey() if menu then menu=false speed=0.08 moving=false score=0 level=1 color={225,170,0} for i=1,27 do cubesY[i]=cubesY[i]-5 end endendfunction on.arrowLeft() if not menu then dir=-1 moving=true moveStart=timer.getMilliSecCounter() endendfunction on.arrowRight() if not menu then dir=1 moving=true moveStart=timer.getMilliSecCounter() endendfunction on.charIn(ch) if ch=="6" then on.arrowRight() elseif ch=="4" then on.arrowLeft() endendfunction updateFPS() delay=timer.getMilliSecCounter()-lastTick delay=delay<300 and delay or 0 lastTick=timer.getMilliSecCounter()end
(BTW, my Nspire Computer Software free trial expired. Could someone just copy/paste and post the code on page 1.1 of the attached document ? Thanks.)
Right now I'm not in windows, but I'll try to do it later. (or someone else might beat me)
Quote from: jimbauwens on October 18, 2011, 12:47:35 pmRight now I'm not in windows, but I'll try to do it later. (or someone else might beat me)And my Ubuntu 11.10 is out of order < (crappy video driver and crappy new ubuntu update and crappy dual screen ... have to reformat everything - cool story bro').
cubesX={1,5,7,6,4,6,4,1,3,2,3,7,8,9,1,2,3,4,2,6,7,1,9,1,2,3,4}cubesY={1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,<nod;/node> cubesY[i]=cubesY[i]+step if cubesY[i]>10 then cubesX[i]=math.random(10,140)/10+player cubesY[i]=1 end endendfunction updateMove() if moving then player=player+0.04*dir if timer.getMilliSecCounter()-moveStart>=150 then moving=false end endendfunction drawPlayer(gc) if not menu then --gc:drawImage(playerImg,149,192) gc:setColorRGB(100,100,100) gc:fillRect(149,192,20,20) endendfunction drawMenu(gc) if menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",30) gc:drawString("CubeField",80,10,"top") gc:setFont("sansserif","b",12) gc:drawString("Press Enter",115,150,"top") local highscore=var.recall("highscore") if not highscore then var.store("highscore",0) highscore=0 end if score>highscore 7,7,8,8,8,9,9,9}player=0speed=0.05moving=falsedir=1moveStart=0then var.store("highscore",score) document.markChanged() end local str="Score : "..tostring(score).." Highscore : "..tostring(highscore) gc:drawString(str,159-gc:getStringWidth(str)/2,100,"top") endendfunction drawScore(gc) if not menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",12) gc:drawString(tostring(score),2,0,"top") endendfunction levelUp() speed=speed+0.01 level=level+1 if (level-1)%5==0 then color={225,170,0} elseif (level-1)%5==1 then color={0,0,255} elseif (level-1)%5==2 then color={100,100,100} elseif (level-1)%5==3 then color={90,255,0} elseif (level-1)%5==4 then color={255,255,255} endendfunction on.paint(gc) render(gc) drawPlayer(gc) drawMenu(gc) drawScore(gc)<t;>menu=truescore=0level=1color={225,170,0}function render(gc) <leaf name="1word"&g/node> gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",8) gc:drawString("Lua CubeField - Par Loic Pujet",10,200,"top") timer.start(0.01)endfunction on.timer() timer.stop() updateCubes() updateMove() if not menu then score=score+1 if score%1000==0 then levelUp() end end platform.window:invalidate()endfunction on.escapeKey() menu=trueendfunction on.enterKey() if menu then menu=false speed=0.05 moving=false score=0 level=1 color={225,170,0} for i=1,27 do cubesY[i]=cubesY[i]-5 end endendfunction on.arrowLeft() if not menu then dir=-1 moving=true moveStart=timer.getMilliSecCounter()<leaf name="1word"t;gc:setColorRGB(0,0,0) gc:drawLine(0,60,317,60) local size,x,y for i=1,27 do endendfunction on.arrowRight() if not menu then dir=1 moving=true moveStart=timer.getMilliSecCounter() endend<ce="1word">size=cubesY[i]*cubesY[i]/1.5+8 x=(cubesX[i]-7-player)*20*(cubesY[i]*cubesY[i]/20+0.5)-size/2+160 y=cubesY[i]*cubesY[i]*2+50 if cubesY[i]>1 then gc:setColorRGB(color[1],color[2],color[3]) gc:fillRect(x,y,size,size) gc:setColorRGB(0,0,0) gc:drawRect(x,y,size,size) end if cubesY[i]>7.5 and cubesY[i]<8.5 then if x<167 and x+size>151 then on.escapeKey() end end endendfunction updateCubes() local step=menu and 0.05 or speed for i=1,27 do cubesY[i]=cubesY[i]+step if cubesY[i]>10 then cubesX[i]=math.random(10,140)/10+player cubesY[i]=1 end endendfunction updateMove() if moving then player=player+0.04*dir if timer.getMilliSecCounter()-moveStart>=150 then moving=false end endendfunction drawPlayer(gc) if not menu then --gc:drawImage(playerImg,149,192) gc:setColorRGB(100,100,100) gc:fillRect(149,192,20,20) endendfunction drawMenu(gc) if menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",30) gc:drawString("CubeField",80,10,"top") gc:setFont("sansserif","b",12) gc:drawString("Press Enter",115,150,"top") local highscore=var.recall("highscore") if not highscore then var.store("highscore",0) highscore=0 end if score>highscore then var.store("highscore",score) document.markChanged() end local str="Score : "..tostring(score).." Highscore : "..tostring(highscore) gc:drawString(str,159-gc:getStringWidth(str)/2,100,"top") endendfunction drawScore(gc) if not menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",12) gc:drawString(tostring(score),2,0,"top") endendfunction levelUp() speed=speed+0.01 level=level+1 if (level-1)%5==0 then color={225,170,0} elseif (level-1)%5==1 then color={0,0,255} elseif (level-1)%5==2 then color={100,100,100} elseif (level-1)%5==3 then color={90,255,0} elseif (level-1)%5==4 then color={255,255,255} endendfunction on.paint(gc) render(gc) drawPlayer(gc) drawMenu(gc) drawScore(gc) gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",8) gc:drawString("Lua CubeField - Par Loic Pujet",10,200,"top") timer.start(0.01)endfunction on.timer() timer.stop() updateCubes() updateMove() if not menu then score=score+1 if score%1000==0 then levelUp() end end platform.window:invalidate()endfunction on.escapeKey() menu=trueendfunction on.enterKey() if menu then menu=false speed=0.05 moving=false score=0 level=1 color={225,170,0} for i=1,27 do cubesY[i]=cubesY[i]-5 end endendfunction on.arrowLeft() if not menu then dir=-1 moving=true moveStart=timer.getMilliSecCounter() endendfunction on.arrowRight() if not menu then dir=1 moving=true moveStart=timer.getMilliSecCounter() endend
playerImg=image.new("\\020\\000\\000\\000\\020\\000\\000\\000\\000\\000\\000\\000\\040\\000\\000\\000\\016\\000\\001\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\00me="1word"/>function drawMenu(gc) if menu then gc:setColorRGB(0,0,0) 00\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\151\\194\\000\\128\\000\\128\\000\\128\\000\\128\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\000\\000\\128\\151\\194\\151\\194\\151\\194\\000\\128\\000\\128\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\000\\128\\000\\128\\061\\215\\061\\215\\061\\215\\000\\128\\000\\000\\000\\128\\151\\194\\151\\194\\000\\128\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\000\\128\\061\\215\\061\\215\\000\\128\\000\\128\\000\\128\\000\\128\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\000\\128\\000\\128\\000\\128")
cubesX={1,5,7,6,4,6,4,1,3,2,3,7,8,9,1,2,3,4,2,6,7,1,9,1,2,3,4}cubesY={1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9}player=0speed=0.05moving=falsedir=1moveStart=0menu=truescore=0level=1color={225,170,0}function render(gc) gc:setColorRGB(0,0,0) gc:drawLine(0,60,317,60) local size,x,y for i=1,27 do size=cubesY[i]*cubesY[i]/1.5+8 x=(cubesX[i]-7-player)*20*(cubesY[i]*cubesY[i]/20+0.5)-size/2+160 y=cubesY[i]*cubesY[i]*2+50 if cubesY[i]>1 then gc:setColorRGB(color[1],color[2],color[3]) gc:fillRect(x,y,size,size) gc:setColorRGB(0,0,0) gc:drawRect(x,y,size,size) end if cubesY[i]>7.5 and cubesY[i]<8.5 then if x<167 and x+size>151 then on.escapeKey() end end endendfunction updateCubes() local step=menu and 0.05 or speed for i=1,27 do cubesY[i]=cubesY[i]+step if cubesY[i]>10 then cubesX[i]=math.random(10,140)/10+player cubesY[i]=1 end endendfunction updateMove() if moving then player=player+0.04*dir if timer.getMilliSecCounter()-moveStart>=150 then moving=false end endendfunction drawPlayer(gc) if not menu then --gc:drawImage(playerImg,149,192) gc:setColorRGB(100,100,100) gc:fillRect(149,192,20,20) endendfunction drawMenu(gc) if menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",30) gc:drawString("CubeField",80,10,"top") gc:setFont("sansserif","b",12) gc:drawString("Press Enter",115,150,"top") local highscore=var.recall("highscore") if not highscore then var.store("highscore",0) highscore=0 end if score>highscore then var.store("highscore",score) document.markChanged() end local str="Score : "..tostring(score).." Highscore : "..tostring(highscore) gc:drawString(str,159-gc:getStringWidth(str)/2,100,"top") endendfunction drawScore(gc) if not menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",12) gc:drawString(tostring(score),2,0,"top") endendfunction levelUp() speed=speed+0.01 level=level+1 if (level-1)%5==0 then color={225,170,0} elseif (level-1)%5==1 then color={0,0,255} elseif (level-1)%5==2 then color={100,100,100} elseif (level-1)%5==3 then color={90,255,0} elseif (level-1)%5==4 then color={255,255,255} endendfunction on.paint(gc) render(gc) drawPlayer(gc) drawMenu(gc) drawScore(gc) gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",8) gc:drawString("Lua CubeField - Par Loic Pujet",10,200,"top") timer.start(0.01)endfunction on.timer() timer.stop() updateCubes() updateMove() if not menu then score=score+1 if score%1000==0 then levelUp() end end platform.window:invalidate()endfunction on.escapeKey() menu=trueendfunction on.enterKey() if menu then menu=false speed=0.05 moving=false score=0 level=1 color={225,170,0} for i=1,27 do cubesY[i]=cubesY[i]-5 end endendfunction on.arrowLeft() if not menu then dir=-1 moving=true moveStart=timer.getMilliSecCounter() endendfunction on.arrowRight() if not menu then dir=1 moving=true moveStart=timer.getMilliSecCounter() endendGenerated by the BBify'r (http://clrhome.tk/resources/bbify/)
cubesX={1,5,7,6,4,6,4,1,3,2,3,7,8,9,1,2,3,4,2,6,7,1,9,1,2,3,4}cubesY={1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9}player=0speed=0.05moving=falsedir=1moveStart=0menu=truescore=0level=1color={225,170,0}function render(gc) gc:setColorRGB(0,0,0) gc:drawLine(0,60,317,60) local size,x,y for i=1,27 do size=cubesY[i]*cubesY[i]/1.5+8 x=(cubesX[i]-7-player)*20*(cubesY[i]*cubesY[i]/20+0.5)-size/2+160 y=cubesY[i]*cubesY[i]*2+50 if cubesY[i]>1 then gc:setColorRGB(color[1],color[2],color[3]) gc:fillRect(x,y,size,size) gc:setColorRGB(0,0,0) gc:drawRect(x,y,size,size) end if cubesY[i]>7.5 and cubesY[i]<8.5 then if x<167 and x+size>151 then on.escapeKey() end end endendfunction updateCubes() local step=menu and 0.05 or speed for i=1,27 do cubesY[i]=cubesY[i]+step if cubesY[i]>10 then cubesX[i]=math.random(10,140)/10+player cubesY[i]=1 end endendfunction updateMove() if moving then player=player+0.04*dir if timer.getMilliSecCounter()-moveStart>=150 then moving=false end endendfunction drawPlayer(gc) if not menu then --gc:drawImage(playerImg,149,192) gc:setColorRGB(100,100,100) gc:fillRect(149,192,20,20) endendfunction drawMenu(gc) if menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",30) gc:drawString("CubeField",80,10,"top") gc:setFont("sansserif","b",12) gc:drawString("Press Enter",115,150,"top") local highscore=var.recall("highscore") if not highscore then var.store("highscore",0) highscore=0 end if score>highscore then var.store("highscore",score) document.markChanged() end local str="Score : "..tostring(score).." Highscore : "..tostring(highscore) gc:drawString(str,159-gc:getStringWidth(str)/2,100,"top") endendfunction drawScore(gc) if not menu then gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",12) gc:drawString(tostring(score),2,0,"top") endendfunction levelUp() speed=speed+0.01 level=level+1 if (level-1)%5==0 then color={225,170,0} elseif (level-1)%5==1 then color={0,0,255} elseif (level-1)%5==2 then color={100,100,100} elseif (level-1)%5==3 then color={90,255,0} elseif (level-1)%5==4 then color={255,255,255} endendfunction on.paint(gc) render(gc) drawPlayer(gc) drawMenu(gc) drawScore(gc) gc:setColorRGB(0,0,0) gc:setFont("sansserif","r",8) gc:drawString("Lua CubeField - Par Loic Pujet",10,200,"top") timer.start(0.01)endfunction on.timer() timer.stop() updateCubes() updateMove() if not menu then score=score+1 if score%1000==0 then levelUp() end end platform.window:invalidate()endfunction on.escapeKey() menu=trueendfunction on.enterKey() if menu then menu=false speed=0.05 moving=false score=0 level=1 color={225,170,0} for i=1,27 do cubesY[i]=cubesY[i]-5 end endendfunction on.arrowLeft() if not menu then dir=-1 moving=true moveStart=timer.getMilliSecCounter() endendfunction on.arrowRight() if not menu then dir=1 moving=true moveStart=timer.getMilliSecCounter() endend