From fbd3f05c639fd99457a75f1c8a30c49df6765d59 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Sat, 17 Apr 2021 20:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8Fdtw=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=A1=97=E6=9C=BA=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/language/lang_en.lua | 1 + parts/language/lang_fr.lua | 1 + parts/language/lang_pt.lua | 1 + parts/language/lang_sp.lua | 1 + parts/language/lang_symbol.lua | 1 + parts/language/lang_zh.lua | 1 + parts/scenes/app_dtw.lua | 88 +++++++++++++++++++++------------- 7 files changed, 62 insertions(+), 32 deletions(-) diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 4ca4de30..77486fd1 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -647,6 +647,7 @@ return{ }, app_dtw={ reset="Reset", + arcade="Arcade", mode="Mode", }, savedata={ diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index 1fa821f9..ef7a6fde 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -556,6 +556,7 @@ return{ }, app_dtw={ reset="Réinitialiser", + -- arcade="Arcade", -- mode="Mode", }, about={ diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index 25cc3192..cf3f82be 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -645,6 +645,7 @@ return{ }, app_dtw={ reset="Resetar", + -- arcade="Arcade", -- mode="Mode", }, savedata={ diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua index 67131844..ca7be88a 100644 --- a/parts/language/lang_sp.lua +++ b/parts/language/lang_sp.lua @@ -560,6 +560,7 @@ return{ }, app_dtw={ reset="Reiniciar", + -- arcade="Arcade", mode="Modo", }, savedata={ diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua index 7dfda31f..f95189ad 100644 --- a/parts/language/lang_symbol.lua +++ b/parts/language/lang_symbol.lua @@ -487,6 +487,7 @@ return{ }, app_dtw={ reset="R", + arcade="↓↓", mode="?", }, }, diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index c2da81b7..4f5fecb2 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -648,6 +648,7 @@ return{ }, app_dtw={ reset="重置", + arcade="街机", mode="模式", }, savedata={ diff --git a/parts/scenes/app_dtw.lua b/parts/scenes/app_dtw.lua index a657eed5..e0c3f150 100644 --- a/parts/scenes/app_dtw.lua +++ b/parts/scenes/app_dtw.lua @@ -21,16 +21,17 @@ local state,progress local startTime,time local keyTime local speed,maxSpeed +local arcade,rollSpeed local tileColor={ - COLOR.black, - COLOR.dRed, - COLOR.dG, - COLOR.dB, - COLOR.dY, - COLOR.dSky, - COLOR.dPurple, + {0,0,0}, + {.3,0,0}, + {0,.3,0}, + {0,0,.3}, + {.3,.3,0}, + {0,.1,.3}, + {.2,0,.3}, } local modeName={ "Normal", @@ -96,8 +97,9 @@ local function reset() progress={} state,time=0,0 score=0 + rollSpeed=8 - pos={rnd(4)}for _=1,5 do newTile()end + pos={rnd(4)}for _=1,6 do newTile()end height=0 diePos=false end @@ -106,6 +108,7 @@ local scene={} function scene.sceneInit() mode=1 + arcade=true reset() BG.set("grey") BGM.play("way") @@ -165,6 +168,8 @@ function scene.keyDown(key) elseif(key=="q"or key=="tab")and state==0 then mode=mode%#modeName+1 reset() + elseif key=="w"and state==0 then + arcade=not arcade end end end @@ -181,62 +186,80 @@ end function scene.update() if state==1 then - time=TIME()-startTime local t=TIME() + time=t-startTime local v=0 for i=2,20 do v=v+i*(i-1)*.3/(t-keyTime[i])end speed=speed*.99+v*.01 if speed>maxSpeed then maxSpeed=speed end + + if arcade then + height=height-rollSpeed + rollSpeed=rollSpeed+.00355 + if height<-120 then + state=2 + end + else + height=height*.6 + end end - height=height*.6 end function scene.draw() --Draw mode gc.setColor(1,1,1) setFont(50) - mStr(modeName[mode],155,300) + mStr(modeName[mode],155,380) - --Draw speed - setFont(45) - gc.setColor(1,.6,.6) - mStr(format("%.2f",maxSpeed/60),155,400) - gc.setColor(1,1,1) - mStr(format("%.2f",speed/60),155,460) + if arcade then + --Draw rolling speed + mStr(format("%.2f/s",rollSpeed/2),155,490) + else + --Draw speed + setFont(45) + gc.setColor(1,.6,.6) + mStr(format("%.2f",maxSpeed/60),155,460) + gc.setColor(1,1,1) + mStr(format("%.2f",speed/60),155,520) + + --Progress time list + setFont(30) + gc.setColor(.6,.6,.6) + for i=1,#progress do + gc.print(progress[i],1030,120+25*i) + end + end --Draw time setFont(45) gc.print(format("%.3f",time),1030,70) - --Progress time list - setFont(30) - gc.setColor(.6,.6,.6) - for i=1,#progress do - gc.print(progress[i],1030,120+25*i) - end --Draw tiles gc.setColor(1,1,1) gc.rectangle("fill",300,0,680,720) gc.setColor(tileColor[mode]) - for i=1,#pos do - if pos[i]<10 then - gc.rectangle("fill",130+170*pos[i]+8,720-i*120-height+8,170-16,120-16) - else - gc.rectangle("fill",130+170*(pos[i]%10)+8,720-i*120-height+8,170-16,120-16) - gc.rectangle("fill",130+170*int(pos[i]/10)+8,720-i*120-height+8,170-16,120-16) + gc.push("transform") + gc.translate(0,720-height+8) + for i=1,#pos do + if pos[i]<10 then + gc.rectangle("fill",130+170*pos[i]+8,-i*120,170-16,120-16) + else + gc.rectangle("fill",130+170*(pos[i]%10)+8,-i*120,170-16,120-16) + gc.rectangle("fill",130+170*int(pos[i]/10)+8,-i*120,170-16,120-16) + end end - end + gc.pop() --Draw track line gc.setColor(0,0,0) - gc.setLineWidth(4) + gc.setLineWidth(2) for x=1,5 do x=130+170*x gc.line(x,0,x,720) end for y=0,6 do - y=720-120*y-height + y=720-120*y-height%120 gc.line(300,y,980,y) end @@ -259,6 +282,7 @@ end scene.widgetList={ WIDGET.newButton{name="reset", x=155,y=100,w=180,h=100,color="lGreen",font=40,code=pressKey"r"}, WIDGET.newButton{name="mode", x=155,y=220,w=180,h=100,font=40,code=pressKey"q",hide=function()return state~=0 end}, + WIDGET.newSwitch{name="arcade", x=230,y=330,font=40,disp=function()return arcade end,code=pressKey"w",hide=function()return state~=0 end}, WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,font=40,code=backScene}, }