From 57003e3e8aa783361f288e1978e11447314b7042 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Wed, 24 Feb 2021 17:48:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E6=B8=B8=E6=88=8Fdtw=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=80=9F=E5=BA=A6=EF=BC=8C=E6=98=BE=E7=A4=BA=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E6=A8=A1=E5=BC=8F=E4=BD=BF=E7=94=A8=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=9D=97=E9=A2=9C=E8=89=B2=EF=BC=8C=E9=9F=B3?= =?UTF-8?q?=E6=95=88=E7=94=BB=E9=9D=A2=E7=95=A5=E5=BE=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/scenes/mg_dtw.lua | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/parts/scenes/mg_dtw.lua b/parts/scenes/mg_dtw.lua index fa759cf6..dbe1fd65 100644 --- a/parts/scenes/mg_dtw.lua +++ b/parts/scenes/mg_dtw.lua @@ -19,7 +19,17 @@ local targets={ local state,progress local startTime,time +local keyTime +local speed,maxSpeed + +local tileColor={ + COLOR.black, + COLOR.dRed, + COLOR.dG, + COLOR.dB, + COLOR.dY, +} local modeName={ "Normal", "Split", @@ -59,6 +69,8 @@ local function newTile() ins(pos,r) end local function reset() + keyTime={}for i=1,40 do keyTime[i]=-1e99 end + speed,maxSpeed=0,0 progress={} state,time=0,0 score=0 @@ -85,6 +97,8 @@ local function touch(n) if n==pos[1]then rem(pos,1) newTile() + ins(keyTime,1,TIME()) + keyTime[21]=nil score=score+1 if targets[score]then ins(progress,format("%s - %.3fs",score,TIME()-startTime)) @@ -105,7 +119,7 @@ local function touch(n) time=TIME()-startTime state=2 diePos=n - SFX.play("fail") + SFX.play("clear_2") end end function scene.keyDown(key) @@ -136,6 +150,11 @@ end function scene.update() if state==1 then time=TIME()-startTime + local t=TIME() + 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 end height=height*.6 end @@ -144,14 +163,21 @@ function scene.draw() --Draw mode gc.setColor(1,1,1) setFont(50) - mStr(modeName[mode],155,320) + mStr(modeName[mode],155,300) + + --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) --Draw time - setFont(40) + setFont(45) gc.print(format("%.3f",time),1030,70) --Progress time list - setFont(25) + setFont(30) gc.setColor(.6,.6,.6) for i=1,#progress do gc.print(progress[i],1030,120+25*i) @@ -160,12 +186,13 @@ function scene.draw() --Draw tiles gc.setColor(1,1,1) gc.rectangle("fill",300,0,680,720) - gc.setColor(0,0,0) + gc.setColor(tileColor[mode]) for i=1,#pos do gc.rectangle("fill",130+170*pos[i]+8,720-i*120-height+8,170-16,120-16) end --Draw track line + gc.setColor(0,0,0) gc.setLineWidth(4) for x=1,5 do x=130+170*x @@ -179,7 +206,7 @@ function scene.draw() --Draw red tile if diePos then gc.setColor(1,.2,.2) - gc.rectangle("fill",130+170*diePos+6,600-height+6,170-12,120-12) + gc.rectangle("fill",130+170*diePos+8,600-height+8,170-16,120-16) end --Draw score