From ae650bd1fff71fafc9e8bc99a50f9e9aab8736c0 Mon Sep 17 00:00:00 2001 From: MrZ_26 Date: Tue, 21 Jul 2020 00:16:15 +0800 Subject: [PATCH] =?UTF-8?q?0.9.2:=E8=B0=83=E8=AF=95=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E8=83=8C=E6=99=AF=EF=BC=8C=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/bg.lua | 64 +++++++++------------------ Zframework/init.lua | 80 ++++++---------------------------- Zframework/languages.lua | 44 ++++++++++++++----- Zframework/paint.lua | 26 +++++------ Zframework/scene.lua | 15 ++++--- Zframework/shader.lua | 5 ++- Zframework/shader/grad1.glsl | 10 +++++ Zframework/shader/grad2.glsl | 10 +++++ Zframework/shader/grad3.glsl | 11 +++++ Zframework/shader/rainbow.glsl | 15 ------- Zframework/shader/strap.glsl | 11 ----- Zframework/widgetList.lua | 74 +++++++++++++++++++++++-------- conf.lua | 2 +- main.lua | 38 +--------------- modes/marathon_hard.lua | 2 +- modes/marathon_normal.lua | 2 +- modes/master_beginner.lua | 2 +- modes/round_1.lua | 2 +- modes/round_2.lua | 2 +- modes/round_3.lua | 2 +- modes/round_4.lua | 2 +- modes/round_5.lua | 2 +- modes/sprint_10.lua | 2 +- modes/sprint_100.lua | 2 +- modes/sprint_1000.lua | 2 +- modes/sprint_20.lua | 2 +- modes/sprint_40.lua | 2 +- modes/sprint_400.lua | 2 +- modes/zen.lua | 2 +- parts/list.lua | 49 ++++++++++++++++++++- parts/player.lua | 72 ++++++++++++++++++------------ parts/texture.lua | 63 ++++---------------------- parts/updateLog.lua | 16 ++++--- 33 files changed, 305 insertions(+), 330 deletions(-) create mode 100644 Zframework/shader/grad1.glsl create mode 100644 Zframework/shader/grad2.glsl create mode 100644 Zframework/shader/grad3.glsl delete mode 100644 Zframework/shader/rainbow.glsl delete mode 100644 Zframework/shader/strap.glsl diff --git a/Zframework/bg.lua b/Zframework/bg.lua index 1ddd41c8..f8b4cb6d 100644 --- a/Zframework/bg.lua +++ b/Zframework/bg.lua @@ -44,21 +44,6 @@ back.rgb={ ) end, }--Changing pure color -back.strap={ - init=function() - t=0 - end, - update=function(dt) - t=t+dt - end, - draw=function() - SHADER.strap:send("t",t*.626) - gc.setColor(.4,.626,.626) - gc.setShader(SHADER.strap) - gc.rectangle("fill",0,0,scr.w,scr.h) - gc.setShader() - end, -}--Horizonal ranbow back.flink={ init=function() t=0 @@ -95,63 +80,58 @@ back.aura={ back.game1={ init=function() t=0 - BG.resize(scr.w,scr.h) + BG.resize(scr.w) end, - resize=function(w,h) - SHADER.rainbow:send("w",w*scr.dpi) - SHADER.rainbow:send("h",h*scr.dpi) + resize=function(w) + SHADER.gradient1:send("w",w*scr.dpi) end, update=function(dt) t=t+dt end, draw=function() - SHADER.rainbow:send("t",t) - gc.setColor(.6,.6,.6) - gc.setShader(SHADER.rainbow) + SHADER.gradient1:send("t",t) + gc.setShader(SHADER.gradient1) gc.rectangle("fill",0,0,scr.w,scr.h) gc.setShader() end, -}--Rolling rainbow +}--Horizonal red-blue gradient back.game2={ init=function() t=0 - BG.resize(scr.w,scr.h) + BG.resize(nil,scr.h) end, resize=function(w,h) - SHADER.rainbow:send("w",w*scr.dpi) - SHADER.rainbow:send("h",h*scr.dpi) + SHADER.gradient2:send("h",h*scr.dpi) end, update=function(dt) t=t+dt end, draw=function() - SHADER.rainbow:send("t",t) - gc.setColor(.7,.4,.4) - gc.setShader(SHADER.rainbow) + SHADER.gradient2:send("t",t) + gc.setShader(SHADER.gradient2) gc.rectangle("fill",0,0,scr.w,scr.h) gc.setShader() end, -}--Red rolling rainbow +}--Vertical red-green gradient back.game3={ init=function() t=0 BG.resize(scr.w,scr.h) end, resize=function(w,h) - SHADER.rainbow:send("w",w*scr.dpi) - SHADER.rainbow:send("h",h*scr.dpi) + SHADER.gradient3:send("w",w*scr.dpi) + SHADER.gradient3:send("h",h*scr.dpi) end, update=function(dt) t=t+dt end, draw=function() - SHADER.rainbow:send("t",t) - gc.setColor(.5,.5,.8) - gc.setShader(SHADER.rainbow) + SHADER.gradient3:send("t",t) + gc.setShader(SHADER.gradient3) gc.rectangle("fill",0,0,scr.w,scr.h) gc.setShader() end, -}--Blue rolling rainbow +}--beautiful RGB back.game4={ init=function() t=0 @@ -160,11 +140,7 @@ back.game4={ t=t+dt end, draw=function() - SHADER.strap:send("t",t*1.26) - gc.setColor(.5,.626,.74) - gc.setShader(SHADER.strap) - gc.rectangle("fill",0,0,scr.w,scr.h) - gc.setShader() + end, }--Blue strap back.game5={ @@ -189,7 +165,7 @@ back.game6={ t=0 colorLib=_G.SKIN.libColor colorSet=_G.setting.skin - miniBlock=_G.miniBlock + blockImg=_G.TEXTURE.miniBlock end, update=function(dt) t=t+dt @@ -202,7 +178,7 @@ back.game6={ local R=7-int(t*.5)%7 local _=colorLib[colorSet[R]] gc.setColor(_[1],_[2],_[3],.1) - gc.draw(miniBlock[R],640,360,t%3.1416*6,400,400,scs[R][0][2]-.5,#blocks[R][0]-scs[R][0][1]+.5) + gc.draw(blockImg[R],640,360,t%3.1416*6,400,400,scs[R][0][2]-.5,#blocks[R][0]-scs[R][0][1]+.5) end, }--Fast lightning + spining tetromino @@ -284,7 +260,7 @@ BG={ update=NULL, draw=back.none.draw, } -function BG.set(bg) +function BG.set(bg,data) if bg==BG.cur or not setting.bg then return end if BG.discard then BG.discard() diff --git a/Zframework/init.lua b/Zframework/init.lua index cd9389b2..8797b071 100644 --- a/Zframework/init.lua +++ b/Zframework/init.lua @@ -290,8 +290,8 @@ end local customSet={ {3,20,1,1,7,1,1,1,3,4,1,2,3}, {5,20,1,1,7,1,1,1,8,3,8,3,3}, - {1,22,1,1,7,3,1,1,8,4,1,7,7}, - {3,20,1,1,7,1,1,3,8,3,1,7,8}, + {1,22,1,1,7,3,1,1,8,4,1,6,7}, + {3,20,1,1,7,1,1,3,8,3,1,6,8}, {25,11,8,11,4,1,2,1,8,3,1,4,9}, } function keyDown.custom(key) @@ -696,7 +696,16 @@ function gamepadUp.play(key) end end -function touchDown.help(id,x,y) +function keyDown.staff(key,RESET) + if key=="escape"then + SCN.back() + elseif key=="\122"then + if RESET or kb.isDown("\109")and kb.isDown("\114")then + SCN.goto("debug") + end + end +end +function touchDown.staff(id,x,y) local pw=sceneTemp.pw local t=pw%4 if @@ -707,8 +716,7 @@ function touchDown.help(id,x,y) then pw=pw+1 if pw==8 then - marking=nil - SFX.play("reach") + SCN.goto("debug") end else pw=x<640 and y<360==1 and 1 or 0 @@ -716,66 +724,6 @@ function touchDown.help(id,x,y) sceneTemp.pw=pw end -function keyDown.staff(key,RESET) - if key=="escape"then - SCN.back() - elseif key=="\122"then - if RESET or kb.isDown("\109")and kb.isDown("\114")then - sceneTemp.ct=sceneTemp.ct+1 - if sceneTemp.ct==5 then - TEXT.show("What are you up to?",640,200,40,"appear",.5) - elseif sceneTemp.ct==10 then - TEXT.show("Stop what you are doing.",640,200,40,"flicker",.5) - elseif sceneTemp.ct==16 then - TEXT.show("RESET ALL DATA?",640,200,40,"appear",.3,.2) - elseif sceneTemp.ct==20 then - TEXT.show("SURE?????",640,200,40,"beat",.3,.2) - elseif sceneTemp.ct==26 then - local L=love.filesystem.getDirectoryItems("") - for i=1,#L do - local s=L[i] - if s:sub(-4)==".dat"then - love.filesystem.remove(s) - end - end - SFX.play("lock") - SFX.play("clear_4") - SFX.play("finesseError_long") - SCN.back() - TEXT.clear() - end - sceneTemp.v=-6.26 - marking=nil - SFX.play("reach") - end - end -end -function touchDown.staff(id,x,y) - if #tc.getTouches()==5 then - keyDown.staff('\122',true) - end -end - -function keyDown.stat(key) - if key=="u"and kb.isDown("lshift","rshift")then - touchDown.stat() - end -end -function touchDown.stat(id,x,y) - local s=sceneTemp - s.count=s.count+1 - if rnd()<.0626 and s.count>26 then - for name,M in next,Modes do - if not modeRanks[name]then - modeRanks[name]=M.score and 0 or 6 - end - end - FILE.saveUnlock() - TEXT.show("DEV:\85\78\76\79\67\75\65\76\76",640,360,60,"stretch",.6) - SFX.play("clear_4") - end -end - function wheelMoved.history(x,y) wheelScroll(y) end @@ -1088,7 +1036,7 @@ function love.run() local R=int(r)%7+1 _=SKIN.libColor[setting.skin[R]] gc.setColor(_[1],_[2],_[3],min(1-abs(1-r%1*2),.3)) - gc.draw(miniBlock[R],mx,my,Timer()%3.1416*4,20,20,scs[2*R]-.5,#blocks[R][0]-scs[2*R-1]+.5) + gc.draw(TEXTURE.miniBlock[R],mx,my,Timer()%3.1416*4,20,20,scs[2*R]-.5,#blocks[R][0]-scs[2*R-1]+.5) gc.setColor(1,1,1,.5)gc.circle("fill",mx,my,5) gc.setColor(1,1,1)gc.circle("fill",mx,my,3) end--Awesome mouse! diff --git a/Zframework/languages.lua b/Zframework/languages.lua index 21136e03..28f4a571 100644 --- a/Zframework/languages.lua +++ b/Zframework/languages.lua @@ -1,7 +1,7 @@ local langList={ { anykey="按任意键继续", - newVersion="检测到更新!存档格式已修改", + newVersion="检测到更新!", marking="游戏作者:MrZ_26\n任何视频/直播不得出现此水印\n任何转述声明无效", lang="中文", atkModeName={"随机","徽章","击杀","反击"}, @@ -146,7 +146,7 @@ local langList={ "", "使用LOVE2D引擎", "错误或者建议请附带截图发送到内测群或者作者邮箱~", - "仅通过内测群822023725进行免费下载/更新", + "仅通过内测群1080457319进行免费下载/更新", "其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了震动&联网权限!", "若由于被修改的本游戏产生的各种损失作者不负责(我怎么负责啊跟我有啥关系)", "请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~", @@ -176,7 +176,7 @@ local langList={ simple-love-lights[dylhunn] ]], support="支持作者", - group="官方QQ群(如果没有被暗改的话就是这个):822023725", + group="官方QQ群(如果没有被暗改的话就是这个):1080457319", WidgetText={ main={ play="开始", @@ -364,6 +364,12 @@ local langList={ path="打开存储目录", back="返回", }, + debug={ + killWTM="关闭水印", + unlock="解锁全模式", + reset="清空所有数据", + back="返回", + }, }, modes={ ["sprint_10"]= {"竞速", "10L", "消除10行"}, @@ -443,7 +449,7 @@ local langList={ }, { anykey="按任意键继续", - newVersion="检测到更新!存档格式已修改", + newVersion="检测到更新!", marking="游戏作者:MrZ_26\n任何视频/直播不得出现此水印\n任何转述声明无效", lang="全中文", atkModeName={"随机","徽章","击杀","反击"}, @@ -585,7 +591,7 @@ local langList={ "从TO/C2/KOS/TGM3/JS等方块获得过灵感", "", "错误或者建议请附带截图发送到内测群或者作者邮箱~", - "仅通过内测群822023725进行免费下载/更新", + "仅通过内测群1080457319进行免费下载/更新", "其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了震动&联网权限!", "若由于被修改的本游戏产生的各种损失作者不负责(我怎么负责啊跟我有啥关系)", "请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~", @@ -615,7 +621,7 @@ local langList={ simple-love-lights[dylhunn] ]], support="支持作者", - group="官方QQ群(如果没有被暗改的话就是这个):822023725", + group="官方QQ群(如果没有被暗改的话就是这个):1080457319", WidgetText={ main={ play="开始", @@ -803,6 +809,12 @@ local langList={ path="打开存储目录", back="返回", }, + debug={ + killWTM="关闭水印", + unlock="解锁全模式", + reset="清空所有数据", + back="返回", + }, }, modes={ ["sprint_10"]= {"竞速", "10行", "消除10行"}, @@ -882,7 +894,7 @@ local langList={ }, { anykey="Press any button", - newVersion="Updating detected! Saving format updated", + newVersion="Updating detected!", marking="Game Author:MrZ_26\nIllegal recording if see this\nAny explanation invalid", lang="English", atkModeName={"Random","Badges","K.O.s","Attackers"}, @@ -1043,7 +1055,7 @@ local langList={ }, used="Tool used:\n\tBeepbox\n\tGFIE\n\tGoldwave\nLib used:\n\tCold_Clear[MinusKelvin]\n\tsimple-love-lights[dylhunn]", support="Support author", - group="Official QQ Group(if not hacked):822023725", + group="Official QQ Group(if not hacked):1080457319", WidgetText={ main={ play="Play", @@ -1231,6 +1243,12 @@ local langList={ path="Open Data Folder", back="Back", }, + debug={ + killWTM="kill watermark", + unlock="unlock all", + reset="reset all", + back="Back", + }, }, modes={ ["sprint_10"]= {"Sprint", "10L", "Clear 10 lines!"}, @@ -1310,7 +1328,7 @@ local langList={ }, { anykey="↓□↓", - newVersion="&!!! ___!", + newVersion="&!!!", marking="Game Author:MrZ_26\nIllegal recording if see this\nAny explanation invalid", lang="?????", atkModeName={"?","( )","!","←→"}, @@ -1471,7 +1489,7 @@ local langList={ }, used="Tool used:\n\tBeepbox\n\tGFIE\n\tGoldwave\nLib used:\n\tCold_Clear[MinusKelvin]\n\tsimple-love-lights[dylhunn]", support="Support author", - group="Official QQ Group(if not hacked):822023725", + group="Official QQ Group(if not hacked):1080457319", WidgetText={ main={ play="!!!", @@ -1658,6 +1676,12 @@ local langList={ path="_$_", back="X", }, + debug={ + killWTM="kill watermark", + unlock="unlock all", + reset="reset all", + back="X", + }, }, modes={ ["sprint_10"]= {"Sprint", "10L", "Clear 10 lines!"}, diff --git a/Zframework/paint.lua b/Zframework/paint.lua index c58af3b5..84cebaea 100644 --- a/Zframework/paint.lua +++ b/Zframework/paint.lua @@ -65,6 +65,7 @@ local function drawVirtualkey() local a=setting.VKAlpha*.1 local _ if setting.VKIcon then + local icons=TEXTURE.VKIcon for i=1,#V do if V[i].ava then local B=V[i] @@ -72,7 +73,7 @@ local function drawVirtualkey() gc.setLineWidth(B.r*.07) gc.circle("line",B.x,B.y,B.r,10)--Button outline _=V[i].pressTime - gc.draw(VKIcon[i],B.x,B.y,nil,B.r*.026+_*.08,nil,18,18)--icon + gc.draw(icons[i],B.x,B.y,nil,B.r*.026+_*.08,nil,18,18)--icon if _>0 then gc.setColor(1,1,1,a*_*.08) gc.circle("fill",B.x,B.y,B.r*.94,10)--Glow @@ -265,7 +266,7 @@ function Pnt.mode() end if cam.keyCtrl then gc.setColor(1,1,1) - gc.draw(mapCross,460-20,360-20) + gc.draw(TEXTURE.mapCross,460-20,360-20) end end function Pnt.music() @@ -322,11 +323,11 @@ function Pnt.sequence() setFont(40) gc.print(len,120,300) - local L=miniBlock + local L=TEXTURE.miniBlock local x,y=120,126 local cx,cy=120,126 for i=1,len do - local B=miniBlock[bag[i]] + local B=L[bag[i]] gc.draw(B,x,y,nil,15,15,0,B:getHeight()*.5) x=x+B:getWidth()*15+10 if x>1126 then @@ -528,7 +529,7 @@ function Pnt.pause() setFont(26) for i=1,10 do gc.print(text.pauseStat[i],40,210+40*i) - gc.printf(_[i],245,210+40*i,250,"right") + gc.printf(_[i],195,210+40*i,300,"right") end end @@ -750,17 +751,12 @@ end function Pnt.staff() local L=text.staff local t=sceneTemp.time - if t>0 then - setFont(40) - for i=1,#L do - mStr(L[i],640,800+80*i-t*40) - end - mDraw(IMG.coloredTitleImage,640,800-t*40,nil,2) - mDraw(IMG.coloredTitleImage,640,2160-t*40,nil,2) - else - setFont(60) - mStr("Don't tell this to anyone.",640,-100-t*40) + setFont(40) + for i=1,#L do + mStr(L[i],640,800+80*i-t*40) end + mDraw(IMG.coloredTitleImage,640,800-t*40,nil,2) + mDraw(IMG.coloredTitleImage,640,2160-t*40,nil,2) end function Pnt.stat() local chart=sceneTemp.chart diff --git a/Zframework/scene.lua b/Zframework/scene.lua index be9d8fb2..fdbe93fd 100644 --- a/Zframework/scene.lua +++ b/Zframework/scene.lua @@ -187,7 +187,7 @@ function sceneInit.setting_control() dir=1, wait=30, } - BG.set("strap") + BG.set("game1") end function sceneInit.setting_key() sceneTemp={ @@ -208,16 +208,13 @@ function sceneInit.setting_touchSwitch() BG.set("matrix") end function sceneInit.help() - sceneTemp={ - pw=0, - } BG.set("space") end function sceneInit.staff() sceneTemp={ + pw=0, time=0, v=1, - ct=0, } BG.set("space") end @@ -234,7 +231,6 @@ function sceneInit.stat() end end sceneTemp={ - count=0, chart={ A1=S.spin,A2=S.clear, X1=X1,X2=X2, @@ -259,9 +255,14 @@ function sceneInit.stat() end end function sceneInit.history() - BG.set("strap") + BG.set("game1") sceneTemp={require("parts/updateLog"),1}--scroll pos end +function sceneInit.debug() + sceneTemp={ + ct=0, + } +end function sceneInit.quit() love.timer.sleep(.3) love.event.quit() diff --git a/Zframework/shader.lua b/Zframework/shader.lua index 3dddbd71..df8cc228 100644 --- a/Zframework/shader.lua +++ b/Zframework/shader.lua @@ -6,7 +6,8 @@ return{ alpha=N("alpha"), warning=N("warning"), - rainbow=N("rainbow"), - strap=N("strap"), aura=N("aura"), + gradient1=N("grad1"),--Horizonal + gradient2=N("grad2"),--Vertical + gradient3=N("grad3"),--Oblique } \ No newline at end of file diff --git a/Zframework/shader/grad1.glsl b/Zframework/shader/grad1.glsl new file mode 100644 index 00000000..b5d6e503 --- /dev/null +++ b/Zframework/shader/grad1.glsl @@ -0,0 +1,10 @@ +extern float t,w; +vec4 effect(vec4 color,Image text,vec2 pos,vec2 scr_pos){ + float x=scr_pos.x/w; + return vec4( + .8-x*.6, + .3+.2*sin(t), + .15+x*.7, + 1 + ); +} \ No newline at end of file diff --git a/Zframework/shader/grad2.glsl b/Zframework/shader/grad2.glsl new file mode 100644 index 00000000..087a25ac --- /dev/null +++ b/Zframework/shader/grad2.glsl @@ -0,0 +1,10 @@ +extern float t,h; +vec4 effect(vec4 color,Image text,vec2 pos,vec2 scr_pos){ + float y=scr_pos.y/h; + return vec4( + .8-y*.6, + .2+y*.4, + .3+.1*sin(t), + 1 + ); +} \ No newline at end of file diff --git a/Zframework/shader/grad3.glsl b/Zframework/shader/grad3.glsl new file mode 100644 index 00000000..091ec281 --- /dev/null +++ b/Zframework/shader/grad3.glsl @@ -0,0 +1,11 @@ +extern float t,w,h; +vec4 effect(vec4 color,Image text,vec2 pos,vec2 scr_pos){ + float x=scr_pos.x/w; + float y=scr_pos.y/h; + return vec4( + .8-y*.6-.2*sin(t/6.26), + .3+.1*sin(t), + .2+x*.6, + 1 + ); +} \ No newline at end of file diff --git a/Zframework/shader/rainbow.glsl b/Zframework/shader/rainbow.glsl deleted file mode 100644 index da161cad..00000000 --- a/Zframework/shader/rainbow.glsl +++ /dev/null @@ -1,15 +0,0 @@ -#define PI 3.14159265 -extern float w,h; -extern float t; -vec4 effect(vec4 color,Image text,vec2 pos,vec2 scr_pos){ - float x=scr_pos.x-w/2.; - float y=scr_pos.y-h/2.; - float a=(step(0.,x)*2.-1.)*PI+atan(y,x)+PI*0.5+t*0.626; - - return vec4( - color.r*(sin(a+PI*0./3.)*0.3+0.5), - color.g*(sin(a+PI*2./3.)*0.3+0.5), - color.b*(sin(a+PI*4./3.)*0.3+0.5), - 1. - ); -} \ No newline at end of file diff --git a/Zframework/shader/strap.glsl b/Zframework/shader/strap.glsl deleted file mode 100644 index e62c1930..00000000 --- a/Zframework/shader/strap.glsl +++ /dev/null @@ -1,11 +0,0 @@ -#define PI 3.14159265 -extern float t; -vec4 effect(vec4 color,Image text,vec2 pos,vec2 scr_pos){ - float x=scr_pos.x/262.+t; - return vec4( - color.r*(sin(x+PI*0./3.)*0.3+0.5), - color.g*(sin(x+PI*2./3.)*0.3+0.5), - color.b*(sin(x+PI*4./3.)*0.3+0.5), - 1. - ); -} \ No newline at end of file diff --git a/Zframework/widgetList.lua b/Zframework/widgetList.lua index 56653399..02747564 100644 --- a/Zframework/widgetList.lua +++ b/Zframework/widgetList.lua @@ -139,24 +139,24 @@ local Widgets={ O= newButton(650, 440,90, 90,C.white, 50,pressKey(6)), I= newButton(750, 440,90, 90,C.white, 50,pressKey(7)), - Z5= newButton(150, 540,90, 90,C.white, 50,pressKey(8)), - S5= newButton(250, 540,90, 90,C.white, 50,pressKey(9)), - P= newButton(350, 540,90, 90,C.white, 50,pressKey(10)), - Q= newButton(450, 540,90, 90,C.white, 50,pressKey(11)), - F= newButton(550, 540,90, 90,C.white, 50,pressKey(12)), - E= newButton(650, 540,90, 90,C.white, 50,pressKey(13)), - T5= newButton(750, 540,90, 90,C.white, 50,pressKey(14)), - U= newButton(850, 540,90, 90,C.white, 50,pressKey(15)), - V= newButton(950, 540,90, 90,C.white, 50,pressKey(16)), - W= newButton(150, 640,90, 90,C.white, 50,pressKey(17)), - X= newButton(250, 640,90, 90,C.white, 50,pressKey(18)), - J5= newButton(350, 640,90, 90,C.white, 50,pressKey(19)), - L5= newButton(450, 640,90, 90,C.white, 50,pressKey(20)), - R= newButton(550, 640,90, 90,C.white, 50,pressKey(21)), - Y= newButton(650, 640,90, 90,C.white, 50,pressKey(22)), - N= newButton(750, 640,90, 90,C.white, 50,pressKey(23)), - H= newButton(850, 640,90, 90,C.white, 50,pressKey(24)), - I5= newButton(950, 640,90, 90,C.white, 50,pressKey(25)), + Z5= newButton(150, 540,90, 90,C.darkGrey, 50,pressKey(8)), + S5= newButton(250, 540,90, 90,C.darkGrey, 50,pressKey(9)), + P= newButton(350, 540,90, 90,C.darkGrey, 50,pressKey(10)), + Q= newButton(450, 540,90, 90,C.darkGrey, 50,pressKey(11)), + F= newButton(550, 540,90, 90,C.darkGrey, 50,pressKey(12)), + E= newButton(650, 540,90, 90,C.darkGrey, 50,pressKey(13)), + T5= newButton(750, 540,90, 90,C.darkGrey, 50,pressKey(14)), + U= newButton(850, 540,90, 90,C.darkGrey, 50,pressKey(15)), + V= newButton(950, 540,90, 90,C.darkGrey, 50,pressKey(16)), + W= newButton(150, 640,90, 90,C.darkGrey, 50,pressKey(17)), + X= newButton(250, 640,90, 90,C.darkGrey, 50,pressKey(18)), + J5= newButton(350, 640,90, 90,C.darkGrey, 50,pressKey(19)), + L5= newButton(450, 640,90, 90,C.darkGrey, 50,pressKey(20)), + R= newButton(550, 640,90, 90,C.darkGrey, 50,pressKey(21)), + Y= newButton(650, 640,90, 90,C.darkGrey, 50,pressKey(22)), + N= newButton(750, 640,90, 90,C.darkGrey, 50,pressKey(23)), + H= newButton(850, 640,90, 90,C.darkGrey, 50,pressKey(24)), + I5= newButton(950, 640,90, 90,C.darkGrey, 50,pressKey(25)), left= newButton(850, 440,90, 90,C.lightGreen, 55,pressKey("left")), right= newButton(950, 440,90, 90,C.lightGreen, 55,pressKey("right")), @@ -425,6 +425,44 @@ local Widgets={ path= newButton(980,620,250,80,C.white,25,function()love.system.openURL(love.filesystem.getSaveDirectory())end,mobileHide,"back"), back= newButton(640,620,200,80,C.white,40,BACK,nil,"path"), }, + debug={ + killWTM=newButton(340,200,260,100,C.white,35,function() + marking=nil + TEXT.show("\68\69\86\58\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100",640,360,60,"stretch",.6) + SFX.play("clear") + end), + unlock= newButton(640,200,260,100,C.white,40,function() + for name,M in next,Modes do + if not modeRanks[name]then + modeRanks[name]=M.score and 0 or 6 + end + end + FILE.saveUnlock() + TEXT.show("\68\69\86\58\85\78\76\79\67\75\65\76\76",640,360,60,"stretch",.6) + SFX.play("clear_2") + end), + reset= newButton(940,200,260,100,C.white,40,function() + sceneTemp.ct=sceneTemp.ct+1 + if sceneTemp.ct==1 then + TEXT.show("RESET ALL DATA?",640,360,50,"appear",.5) + elseif sceneTemp.ct==5 then + TEXT.show("SURE?????",640,360,80,"beat",.5) + elseif sceneTemp.ct==10 then + local L=love.filesystem.getDirectoryItems("") + for i=1,#L do + local s=L[i] + if s:sub(-4)==".dat"then + love.filesystem.remove(s) + end + end + SFX.play("clear_4")SFX.play("finesseError_long") + TEXT.clear() + TEXT.show("ALL SAVING FILE DELETED",640,360,60,"stretch",.4) + SCN.back() + end + end), + back= newButton(640,620,200,80,C.white,40,BACK), + }, } mobileHide,SETval,SETsto,SETrev=nil pressKey,setPen,prevSkin,nextSkin=nil diff --git a/conf.lua b/conf.lua index c9d509d3..0034edd6 100644 --- a/conf.lua +++ b/conf.lua @@ -1,4 +1,4 @@ -gameVersion="Alpha V0.9.1" +gameVersion="Alpha V0.9.2" function love.conf(t) t.identity="Techmino"--saving folder t.version="11.1" diff --git a/main.lua b/main.lua index 16224f4c..6863cadb 100644 --- a/main.lua +++ b/main.lua @@ -43,9 +43,9 @@ freeRow= require("parts/freeRow") require("parts/list") require("parts/gametoolfunc") -require("parts/texture") require("parts/default_data") +TEXTURE=require("parts/texture") SKIN= require("parts/skin") PLY= require("parts/player") AIfunc= require("parts/ai") @@ -81,43 +81,7 @@ if fs.getInfo("virtualkey.dat")then FILE.loadVK()end --update data file S=stat -S.clear_B,S.clear_S=nil -if not S.clear[1][5]then - for i=1,7 do - S.clear[i][5]=0 - S.spin[i][5]=0 - end - for i=8,25 do - S.clear[i]={0,0,0,0,0} - S.spin[i]={0,0,0,0,0} - end -end -if not S.off then - S.off=S.recv-S.pend -end -if S.clear[1][4]>0 then - for i=1,6 do - S.clear[7][4]=S.clear[7][4]+S.clear[i][4] - S.clear[i][4]=0 - end -end -while #modeRanks>73 do - table.remove(modeRanks) -end -if modeRanks[73]==6 then modeRanks[73]=0 end -if modeRanks[1]then--rename key of modeRanks - local L=modeRanks - for i=1,#L do - L[Modes[i].name],L[i]=L[i] - end -end -if setting.skin[10]==5 then - setting.skin[10],setting.skin[11]=1,5 -end if S.version~=gameVersion then - if S.version then - setting.spawn=true - end S.version=gameVersion TEXT.show(text.newVersion,640,200,30,"fly",.3) end diff --git a/modes/marathon_hard.lua b/modes/marathon_hard.lua index 875efa55..8e91de96 100644 --- a/modes/marathon_hard.lua +++ b/modes/marathon_hard.lua @@ -21,7 +21,7 @@ return{ mindas=7,minarr=1,minsdarr=1, drop=.5,wait=8,fall=20, target=50,dropPiece=check, - bg="strap",bgm="push", + bg="game2",bgm="push", }, pauseLimit=true, slowMark=true, diff --git a/modes/marathon_normal.lua b/modes/marathon_normal.lua index 49283a1b..f73a5d15 100644 --- a/modes/marathon_normal.lua +++ b/modes/marathon_normal.lua @@ -21,7 +21,7 @@ return{ wait=8,fall=20, target=10,dropPiece=check_LVup, mindas=7,minarr=1,minsdarr=1, - bg="strap",bgm="push", + bg="game2",bgm="push", }, pauseLimit=true, slowMark=true, diff --git a/modes/master_beginner.lua b/modes/master_beginner.lua index c89c338b..9c95b750 100644 --- a/modes/master_beginner.lua +++ b/modes/master_beginner.lua @@ -47,7 +47,7 @@ return{ fall=rush_fall[1], dropPiece=score, freshLimit=15, - bg="strap",bgm="secret8th", + bg="game1",bgm="secret8th", }, slowMark=true, load=function() diff --git a/modes/round_1.lua b/modes/round_1.lua index 0582d331..7af56ac3 100644 --- a/modes/round_1.lua +++ b/modes/round_1.lua @@ -16,7 +16,7 @@ return{ drop=1e99,lock=1e99, oncehold=false, dropPiece=update_round, - bg="game2",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/round_2.lua b/modes/round_2.lua index cf9860d5..ca908e8c 100644 --- a/modes/round_2.lua +++ b/modes/round_2.lua @@ -16,7 +16,7 @@ return{ drop=1e99,lock=1e99, oncehold=false, dropPiece=update_round, - bg="game2",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/round_3.lua b/modes/round_3.lua index 2c349d48..341313e0 100644 --- a/modes/round_3.lua +++ b/modes/round_3.lua @@ -16,7 +16,7 @@ return{ drop=1e99,lock=1e99, oncehold=false, dropPiece=update_round, - bg="game2",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/round_4.lua b/modes/round_4.lua index 889fefd4..997e1d7f 100644 --- a/modes/round_4.lua +++ b/modes/round_4.lua @@ -16,7 +16,7 @@ return{ drop=1e99,lock=1e99, oncehold=false, dropPiece=update_round, - bg="game2",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/round_5.lua b/modes/round_5.lua index ef6a06f4..693b79f6 100644 --- a/modes/round_5.lua +++ b/modes/round_5.lua @@ -16,7 +16,7 @@ return{ drop=1e99,lock=1e99, oncehold=false, dropPiece=update_round, - bg="game2",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/sprint_10.lua b/modes/sprint_10.lua index d87cd151..d1671cce 100644 --- a/modes/sprint_10.lua +++ b/modes/sprint_10.lua @@ -5,7 +5,7 @@ return{ env={ drop=60,lock=60, target=10,dropPiece=PLY.reach_winCheck, - bg="strap",bgm="race", + bg="game2",bgm="race", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/sprint_100.lua b/modes/sprint_100.lua index b832335e..f2a7cecc 100644 --- a/modes/sprint_100.lua +++ b/modes/sprint_100.lua @@ -5,7 +5,7 @@ return{ env={ drop=60,lock=60, target=100,dropPiece=PLY.reach_winCheck, - bg="strap",bgm="race", + bg="game2",bgm="race", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/sprint_1000.lua b/modes/sprint_1000.lua index 61a32f30..b39da8a4 100644 --- a/modes/sprint_1000.lua +++ b/modes/sprint_1000.lua @@ -5,7 +5,7 @@ return{ env={ drop=60,lock=60, target=1000,dropPiece=PLY.reach_winCheck, - bg="strap",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/sprint_20.lua b/modes/sprint_20.lua index 39eae0fb..735c135c 100644 --- a/modes/sprint_20.lua +++ b/modes/sprint_20.lua @@ -5,7 +5,7 @@ return{ env={ drop=60,lock=60, target=20,dropPiece=PLY.reach_winCheck, - bg="strap",bgm="race", + bg="game2",bgm="race", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/sprint_40.lua b/modes/sprint_40.lua index dd228898..207c1aba 100644 --- a/modes/sprint_40.lua +++ b/modes/sprint_40.lua @@ -5,7 +5,7 @@ return{ env={ drop=60,lock=60, target=40,dropPiece=PLY.reach_winCheck, - bg="strap",bgm="race", + bg="game2",bgm="race", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/sprint_400.lua b/modes/sprint_400.lua index 8b554069..f261056f 100644 --- a/modes/sprint_400.lua +++ b/modes/sprint_400.lua @@ -5,7 +5,7 @@ return{ env={ drop=60,lock=60, target=400,dropPiece=PLY.reach_winCheck, - bg="strap",bgm="push", + bg="game3",bgm="push", }, load=function() PLY.newPlayer(1,340,15) diff --git a/modes/zen.lua b/modes/zen.lua index e601890b..a6333264 100644 --- a/modes/zen.lua +++ b/modes/zen.lua @@ -4,7 +4,7 @@ return{ drop=120,lock=120, oncehold=false,target=200, dropPiece=PLY.reach_winCheck, - bg="strap",bgm="infinite", + bg="game2",bgm="infinite", }, load=function() PLY.newPlayer(1,340,15) diff --git a/parts/list.lua b/parts/list.lua index d4187330..a80cdbc5 100644 --- a/parts/list.lua +++ b/parts/list.lua @@ -1,3 +1,4 @@ +snapLevelValue={1,10,20,40,60,80} customID={ "drop","lock", "wait","fall", @@ -20,7 +21,51 @@ customRange={ target={10,20,40,100,200,500,1000,1e99}, freshLimit={0,8,15,1e99}, opponent={0,1,2,3,4,5,11,12,13,14,15,16}, - bg={"none","game1","game2","game3","strap","aura","rgb","glow","matrix"}, + bg={"none","game1","game2","game3","aura","rgb","glow","matrix"}, bgm={"blank","way","race","newera","push","reason","infinite","secret7th","secret8th","rockblock"}, } -snapLevelValue={1,10,20,40,60,80} \ No newline at end of file +local function T(s,t)return love.graphics.newText(setFont(s),t)end +drawableText={ + question=T(100,"?"), + bpm=T(15,"BPM"),kpm=T(15,"KPM"), + speedLV=T(20,"speed level"), + atk=T(20,"Attack"), + eff=T(20,"Efficiency"), + tsd=T(35,"TSD"), + line=T(25,"Lines"), + techrash=T(25,"Techrash"), + grade=T(25,"Grade"), + wave=T(30,"Wave"), + rpm=T(35,"RPM"), + nextWave=T(30,"Next"), + combo=T(20,"Combo"), + mxcmb=T(20,"Max Combo"), + pc=T(20,"Perfect Clear"), + ko=T(25,"KO"), + D=T(100,"D"), + C=T(100,"C"), + B=T(100,"B"), + A=T(100,"A"), + S=T(100,"S"), + + + modeName=T(30),levelName=T(30), + + + anykey=T(40), + next=T(40),hold=T(40), + win=T(120),finish=T(120), + lose=T(120),pause=T(120), + + custom=T(80),sequence=T(80), + setting_game=T(80),setting_video=T(80),setting_sound=T(80), + setting_control=T(70),setting_skin=T(70), + preview=T(40), + keyboard=T(25),joystick=T(25), + ctrlSetHelp=T(30), + musicRoom=T(80), + nowPlaying=T(50), + VKTchW=T(30),VKOrgW=T(30),VKCurW=T(30), + noScore=T(45), + highScore=T(30), +} \ No newline at end of file diff --git a/parts/player.lua b/parts/player.lua index ae65f40a..c6209707 100644 --- a/parts/player.lua +++ b/parts/player.lua @@ -692,15 +692,15 @@ local function Pdraw_norm(P) --Draw Hold if P.gameEnv.hold then - gc.setColor(0,0,0,.4)gc.rectangle("fill",-143,36,124,80) - gc.setColor(1,1,1)gc.rectangle("line",-143,36,124,80) - mText(drawableText.hold,-81,-15) + gc.setColor(0,0,0,.4)gc.rectangle("fill",-140,36,124,80) + gc.setColor(1,1,1)gc.rectangle("line",-140,36,124,80) + mText(drawableText.hold,-78,-15) if P.hd then if P.holded then gc.setColor(.6,.5,.5)end local B=P.hd.bk for i=1,#B do for j=1,#B[1]do if B[i][j]then - drawPixel(i+17.5-#B*.5,j-2.7-#B[1]*.5,P.hd.color) + drawPixel(i+17.5-#B*.5,j-2.6-#B[1]*.5,P.hd.color) end end end end @@ -709,15 +709,15 @@ local function Pdraw_norm(P) --Draw Next(s) local N=P.gameEnv.next*72 if P.gameEnv.next>0 then - gc.setColor(0,0,0,.4)gc.rectangle("fill",319,36,124,N) - gc.setColor(1,1,1)gc.rectangle("line",319,36,124,N) - mText(drawableText.next,381,-15) + gc.setColor(0,0,0,.4)gc.rectangle("fill",316,36,124,N) + gc.setColor(1,1,1)gc.rectangle("line",316,36,124,N) + mText(drawableText.next,378,-15) N=1 while N<=P.gameEnv.next and P.next[N]do local b,c=P.next[N].bk,P.next[N].color for i=1,#b do for j=1,#b[1] do if b[i][j]then - drawPixel(i+20-2.4*N-#b*.5,j+12.7-#b[1]*.5,c) + drawPixel(i+20-2.4*N-#b*.5,j+12.6-#b[1]*.5,c) end end end N=N+1 @@ -731,7 +731,7 @@ local function Pdraw_norm(P) gc.setColor(.8,.5,.5) for i=C,N-1,L do local y=72*i+36 - gc.line(321+P.fieldOff.x,y,441,y) + gc.line(318+P.fieldOff.x,y,438,y) end end @@ -745,18 +745,23 @@ local function Pdraw_norm(P) mStr(int(count/60+1),0,0) gc.pop() end--Draw starting counter - TEXT.draw(P.bonus)--Bonus texts + + --Bonus texts + TEXT.draw(P.bonus) + + --Speed dials setFont(25) - drawDial(360,520,P.dropSpeed) - drawDial(405,575,P.keySpeed) + drawDial(360,510,P.dropSpeed) + drawDial(405,565,P.keySpeed) gc.setColor(1,1,1) + gc.draw(drawableText.bpm,390,480) + gc.draw(drawableText.kpm,344,573) mStr(format("%.2f",P.stat.time),-81,518)--Time mStr(P.score1,-81,560)--Score - gc.draw(drawableText.bpm,390,490) - gc.draw(drawableText.kpm,344,583) - --Speed dials + + --Other messages gc.setColor(1,1,1) - curMode.mesDisp(P)--Other messages + curMode.mesDisp(P) if modeEnv.royaleMode then if P.atkMode then @@ -773,6 +778,7 @@ local function Pdraw_norm(P) gc.pop() end local function Pdraw_small(P) + --draw content P.frameWait=P.frameWait-1 if P.frameWait==0 then P.frameWait=10 @@ -781,16 +787,20 @@ local function Pdraw_small(P) gc.push("transform") gc.origin() gc.setColor(1,1,1,P.result and max(20-P.endCounter,0)*.05 or 1) + + --Field local F=P.field for j=1,#F do for i=1,10 do if F[j][i]>0 then gc.draw(blockSkinMini[F[j][i]],6*i-6,120-6*j) end end - end--Field + end + + --Draw boarder if P.alive then gc.setLineWidth(2) gc.setColor(frameColor[P.strength])gc.rectangle("line",1,1,58,118) - end--Draw boarder + end if modeEnv.royaleMode then gc.setColor(1,1,1) for i=1,P.strength do @@ -804,11 +814,11 @@ local function Pdraw_small(P) end gc.pop() gc.setCanvas() - --draw content end + + --draw Canvas gc.setColor(1,1,1) gc.draw(P.canvas,P.x,P.y,nil,P.size*10) - --draw Canvas if P.killMark then gc.setLineWidth(3) gc.setColor(1,0,0,min(P.endCounter,25)*.04) @@ -861,38 +871,43 @@ local function Pdraw_demo(P) drawFXs(P) if P.cur and P.waiting==-1 then + --Draw ghost gc.setColor(1,1,1,.3) for i=1,P.r do for j=1,P.c do if P.cur.bk[i][j]then drawPixel(i+P.y_img-1,j+P.curX-1,curColor) end end end - --Ghost draw + + --Draw block gc.setColor(1,1,1) for i=1,P.r do for j=1,P.c do if P.cur.bk[i][j]then drawPixel(i+P.curY-1,j+P.curX-1,curColor) end - end end--Block + end end end + --Draw hold + local blockImg=TEXTURE.miniBlock if P.hd then local id=P.hd.id _=P.color[id] gc.setColor(_[1],_[2],_[3],.3) - _=miniBlock[id] + _=blockImg[id] gc.draw(_,15,30,nil,16,nil,0,_:getHeight()*.5) - end--Hold + end + --Draw next local N=1 while N<=P.gameEnv.next and P.next[N]do local id=P.next[N].id _=P.color[id] gc.setColor(_[1],_[2],_[3],.3) - _=miniBlock[id] + _=blockImg[id] gc.draw(_,285,40*N-10,nil,16,nil,_:getWidth(),_:getHeight()*.5) N=N+1 - end--Next + end gc.setColor(1,1,1) gc.translate(-P.fieldOff.x,-P.fieldOff.y) @@ -1121,7 +1136,7 @@ function player.garbageRise(P,color,amount,pos) P.fieldBeneath=P.fieldBeneath+amount*30 P.curY=P.curY+amount P.garbageBeneath=P.garbageBeneath+amount - P:freshgho() + P.y_img=P.y_img+amount for i=1,#P.clearingRow do P.clearingRow[i]=P.clearingRow[i]+amount end @@ -1155,7 +1170,7 @@ function player.pushLine(P,L,mir) end P.fieldBeneath=P.fieldBeneath+120 P.curY=P.curY+#L - P:freshgho() + P.y_img=P.y_img+#L end function player.pushNext(P,L,mir) for i=1,#L do @@ -1211,6 +1226,7 @@ function player.changeAtk(P,R) end end function player.freshgho(P) + if not P.cur then return end P.y_img=min(#P.field+1,P.curY) if P.gameEnv._20G or P.keyPressing[7]and P.gameEnv.sdarr==0 then while not P:ifoverlap(P.cur.bk,P.curX,P.y_img-1)do diff --git a/parts/texture.lua b/parts/texture.lua index b6268480..12546787 100644 --- a/parts/texture.lua +++ b/parts/texture.lua @@ -1,27 +1,26 @@ local gc=love.graphics -local N=gc.newImage local int=math.floor -local function T(s,t)return gc.newText(setFont(s),t)end local function C(x,y) local _=gc.newCanvas(x,y) gc.setCanvas(_) return _ end local c +local TEXTURE={} gc.setDefaultFilter("nearest","nearest") gc.setColor(1,1,1) -local VKI=N("/image/virtualkey.png") -VKIcon={} +local VKI=gc.newImage("/image/virtualkey.png") +TEXTURE.VKIcon={} for i=1,20 do - VKIcon[i]=C(36,36) + TEXTURE.VKIcon[i]=C(36,36) gc.draw(VKI,(i-1)%5*-36,int((i-1)*.2)*-36) end -miniBlock={} +TEXTURE.miniBlock={} for i=1,25 do local b=blocks[i][0] - miniBlock[i]=C(#b[1],#b) + TEXTURE.miniBlock[i]=C(#b[1],#b) for y=1,#b do for x=1,#b[1]do if b[y][x]then gc.rectangle("fill",x-1,#b-y,1,1) @@ -29,56 +28,12 @@ for i=1,25 do end end end -mapCross=C(40,40) +TEXTURE.mapCross=C(40,40) gc.setColor(1,1,1) gc.setLineWidth(4) gc.line(0,20,40,20) gc.line(20,0,20,40) gc.setDefaultFilter("linear","linear") - -drawableText={ - question=T(100,"?"), - bpm=T(15,"BPM"),kpm=T(15,"KPM"), - speedLV=T(20,"speed level"), - atk=T(20,"Attack"), - eff=T(20,"Efficiency"), - tsd=T(35,"TSD"), - line=T(25,"Lines"), - techrash=T(25,"Techrash"), - grade=T(25,"Grade"), - wave=T(30,"Wave"), - rpm=T(35,"RPM"), - nextWave=T(30,"Next"), - combo=T(20,"Combo"), - mxcmb=T(20,"Max Combo"), - pc=T(20,"Perfect Clear"), - ko=T(25,"KO"), - D=T(100,"D"), - C=T(100,"C"), - B=T(100,"B"), - A=T(100,"A"), - S=T(100,"S"), - - - modeName=T(30),levelName=T(30), - - - anykey=T(40), - next=T(40),hold=T(40), - win=T(120),finish=T(120), - lose=T(120),pause=T(120), - - custom=T(80),sequence=T(80), - setting_game=T(80),setting_video=T(80),setting_sound=T(80), - setting_control=T(70),setting_skin=T(70), - preview=T(40), - keyboard=T(25),joystick=T(25), - ctrlSetHelp=T(30), - musicRoom=T(80), - nowPlaying=T(50), - VKTchW=T(30),VKOrgW=T(30),VKCurW=T(30), - noScore=T(45), - highScore=T(30), -} -gc.setCanvas() \ No newline at end of file +gc.setCanvas() +return TEXTURE \ No newline at end of file diff --git a/parts/updateLog.lua b/parts/updateLog.lua index 7c2baa47..41347071 100644 --- a/parts/updateLog.lua +++ b/parts/updateLog.lua @@ -69,12 +69,18 @@ Future outlook: more graphic FXs & 3D features & animations network game new AI: task-Z - -0.9.1: next piece SFX +0.9.2: Bug Fixed new: - next piece spawn SFX - code: - render background to canvas first, not redering each frame + debug page + change: + three little better backgrounds instead of stupid rainbow + little change of in-game layout + fixed: + error in infinite-dig + +0.9.1: Piece Spawn SFX + new: + piece spawn SFX fixed: error when moving [nothing] when arr>0 error when complete master-advanced