小游戏dtw增加速度,显示不同模式使用不同的方块颜色,音效画面略微调整
This commit is contained in:
@@ -19,7 +19,17 @@ local targets={
|
|||||||
|
|
||||||
local state,progress
|
local state,progress
|
||||||
local startTime,time
|
local startTime,time
|
||||||
|
local keyTime
|
||||||
|
local speed,maxSpeed
|
||||||
|
|
||||||
|
|
||||||
|
local tileColor={
|
||||||
|
COLOR.black,
|
||||||
|
COLOR.dRed,
|
||||||
|
COLOR.dG,
|
||||||
|
COLOR.dB,
|
||||||
|
COLOR.dY,
|
||||||
|
}
|
||||||
local modeName={
|
local modeName={
|
||||||
"Normal",
|
"Normal",
|
||||||
"Split",
|
"Split",
|
||||||
@@ -59,6 +69,8 @@ local function newTile()
|
|||||||
ins(pos,r)
|
ins(pos,r)
|
||||||
end
|
end
|
||||||
local function reset()
|
local function reset()
|
||||||
|
keyTime={}for i=1,40 do keyTime[i]=-1e99 end
|
||||||
|
speed,maxSpeed=0,0
|
||||||
progress={}
|
progress={}
|
||||||
state,time=0,0
|
state,time=0,0
|
||||||
score=0
|
score=0
|
||||||
@@ -85,6 +97,8 @@ local function touch(n)
|
|||||||
if n==pos[1]then
|
if n==pos[1]then
|
||||||
rem(pos,1)
|
rem(pos,1)
|
||||||
newTile()
|
newTile()
|
||||||
|
ins(keyTime,1,TIME())
|
||||||
|
keyTime[21]=nil
|
||||||
score=score+1
|
score=score+1
|
||||||
if targets[score]then
|
if targets[score]then
|
||||||
ins(progress,format("%s - %.3fs",score,TIME()-startTime))
|
ins(progress,format("%s - %.3fs",score,TIME()-startTime))
|
||||||
@@ -105,7 +119,7 @@ local function touch(n)
|
|||||||
time=TIME()-startTime
|
time=TIME()-startTime
|
||||||
state=2
|
state=2
|
||||||
diePos=n
|
diePos=n
|
||||||
SFX.play("fail")
|
SFX.play("clear_2")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function scene.keyDown(key)
|
function scene.keyDown(key)
|
||||||
@@ -136,6 +150,11 @@ end
|
|||||||
function scene.update()
|
function scene.update()
|
||||||
if state==1 then
|
if state==1 then
|
||||||
time=TIME()-startTime
|
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
|
end
|
||||||
height=height*.6
|
height=height*.6
|
||||||
end
|
end
|
||||||
@@ -144,14 +163,21 @@ function scene.draw()
|
|||||||
--Draw mode
|
--Draw mode
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
setFont(50)
|
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
|
--Draw time
|
||||||
setFont(40)
|
setFont(45)
|
||||||
gc.print(format("%.3f",time),1030,70)
|
gc.print(format("%.3f",time),1030,70)
|
||||||
|
|
||||||
--Progress time list
|
--Progress time list
|
||||||
setFont(25)
|
setFont(30)
|
||||||
gc.setColor(.6,.6,.6)
|
gc.setColor(.6,.6,.6)
|
||||||
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)
|
||||||
@@ -160,12 +186,13 @@ function scene.draw()
|
|||||||
--Draw tiles
|
--Draw tiles
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
gc.rectangle("fill",300,0,680,720)
|
gc.rectangle("fill",300,0,680,720)
|
||||||
gc.setColor(0,0,0)
|
gc.setColor(tileColor[mode])
|
||||||
for i=1,#pos do
|
for i=1,#pos do
|
||||||
gc.rectangle("fill",130+170*pos[i]+8,720-i*120-height+8,170-16,120-16)
|
gc.rectangle("fill",130+170*pos[i]+8,720-i*120-height+8,170-16,120-16)
|
||||||
end
|
end
|
||||||
|
|
||||||
--Draw track line
|
--Draw track line
|
||||||
|
gc.setColor(0,0,0)
|
||||||
gc.setLineWidth(4)
|
gc.setLineWidth(4)
|
||||||
for x=1,5 do
|
for x=1,5 do
|
||||||
x=130+170*x
|
x=130+170*x
|
||||||
@@ -179,7 +206,7 @@ function scene.draw()
|
|||||||
--Draw red tile
|
--Draw red tile
|
||||||
if diePos then
|
if diePos then
|
||||||
gc.setColor(1,.2,.2)
|
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
|
end
|
||||||
|
|
||||||
--Draw score
|
--Draw score
|
||||||
|
|||||||
Reference in New Issue
Block a user