优化小程序dtw的ui和结算逻辑

This commit is contained in:
MrZ626
2021-04-18 17:59:41 +08:00
parent 34a7ab3bf3
commit 064fca3b0a

View File

@@ -12,9 +12,6 @@ local targets={
[620]=true, [620]=true,
[1000]=true, [1000]=true,
[2600]=true, [2600]=true,
[5000]=true,
[10000]=true,
[26000]=true,
} }
local state,progress local state,progress
@@ -25,13 +22,13 @@ local arcade,rollSpeed
local tileColor={ local tileColor={
{0,0,0}, {.0,.0,.0},
{.3,0,0}, {.3,.0,.0},
{0,.3,0}, {.0,.3,.0},
{0,0,.3}, {.0,.0,.3},
{.3,.3,0}, {.3,.3,.0},
{0,.1,.3}, {.0,.1,.3},
{.2,0,.3}, {.2,.0,.3},
} }
local modeName={ local modeName={
"Normal", "Normal",
@@ -97,7 +94,7 @@ local function reset()
progress={} progress={}
state,time=0,0 state,time=0,0
score=0 score=0
rollSpeed=8 rollSpeed=6.26
pos={rnd(4)}for _=1,6 do newTile()end pos={rnd(4)}for _=1,6 do newTile()end
height=0 height=0
@@ -134,9 +131,9 @@ local function touch(n)
ins(keyTime,1,TIME()) ins(keyTime,1,TIME())
keyTime[21]=nil keyTime[21]=nil
score=score+1 score=score+1
if targets[score]then if not arcade and targets[score]then
ins(progress,format("%s - %.3fs",score,TIME()-startTime)) ins(progress,format("%s - %.3fs",score,TIME()-startTime))
if score==26000 then if score==2600 then
for i=1,#pos do for i=1,#pos do
pos[i]=626 pos[i]=626
end end
@@ -161,10 +158,10 @@ function scene.keyDown(key)
if key=="r"then reset() if key=="r"then reset()
elseif key=="escape"then SCN.back() elseif key=="escape"then SCN.back()
elseif state~=2 then elseif state~=2 then
if key=="d"or key=="c"then touch(1) if key=="d"or key=="c"then touch(1)
elseif key=="f"or key=="v"then touch(2) elseif key=="f"or key=="v"then touch(2)
elseif key=="j"or key=="n"then touch(3) elseif key=="j"or key=="n"then touch(3)
elseif key=="k"or key=="m"then touch(4) elseif key=="k"or key=="m"then touch(4)
elseif(key=="q"or key=="tab")and state==0 then elseif(key=="q"or key=="tab")and state==0 then
mode=mode%#modeName+1 mode=mode%#modeName+1
reset() reset()
@@ -198,6 +195,7 @@ function scene.update()
rollSpeed=rollSpeed+.00355 rollSpeed=rollSpeed+.00355
if height<-120 then if height<-120 then
state=2 state=2
SFX.play("clear_2")
end end
else else
height=height*.6 height=height*.6
@@ -228,15 +226,14 @@ function scene.draw()
for i=1,#progress do for i=1,#progress do
gc.print(progress[i],1030,120+25*i) gc.print(progress[i],1030,120+25*i)
end end
--Draw time
gc.setColor(1,1,1)
setFont(45)
gc.print(format("%.3f",time),1030,70)
end end
--Draw time
setFont(45)
gc.print(format("%.3f",time),1030,70)
--Draw tiles --Draw tiles
gc.setColor(1,1,1)
gc.rectangle("fill",300,0,680,720) gc.rectangle("fill",300,0,680,720)
gc.setColor(tileColor[mode]) gc.setColor(tileColor[mode])
gc.push("transform") gc.push("transform")