小程序dtw增加街机模式
This commit is contained in:
@@ -647,6 +647,7 @@ return{
|
|||||||
},
|
},
|
||||||
app_dtw={
|
app_dtw={
|
||||||
reset="Reset",
|
reset="Reset",
|
||||||
|
arcade="Arcade",
|
||||||
mode="Mode",
|
mode="Mode",
|
||||||
},
|
},
|
||||||
savedata={
|
savedata={
|
||||||
|
|||||||
@@ -556,6 +556,7 @@ return{
|
|||||||
},
|
},
|
||||||
app_dtw={
|
app_dtw={
|
||||||
reset="Réinitialiser",
|
reset="Réinitialiser",
|
||||||
|
-- arcade="Arcade",
|
||||||
-- mode="Mode",
|
-- mode="Mode",
|
||||||
},
|
},
|
||||||
about={
|
about={
|
||||||
|
|||||||
@@ -645,6 +645,7 @@ return{
|
|||||||
},
|
},
|
||||||
app_dtw={
|
app_dtw={
|
||||||
reset="Resetar",
|
reset="Resetar",
|
||||||
|
-- arcade="Arcade",
|
||||||
-- mode="Mode",
|
-- mode="Mode",
|
||||||
},
|
},
|
||||||
savedata={
|
savedata={
|
||||||
|
|||||||
@@ -560,6 +560,7 @@ return{
|
|||||||
},
|
},
|
||||||
app_dtw={
|
app_dtw={
|
||||||
reset="Reiniciar",
|
reset="Reiniciar",
|
||||||
|
-- arcade="Arcade",
|
||||||
mode="Modo",
|
mode="Modo",
|
||||||
},
|
},
|
||||||
savedata={
|
savedata={
|
||||||
|
|||||||
@@ -487,6 +487,7 @@ return{
|
|||||||
},
|
},
|
||||||
app_dtw={
|
app_dtw={
|
||||||
reset="R",
|
reset="R",
|
||||||
|
arcade="↓↓",
|
||||||
mode="?",
|
mode="?",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -648,6 +648,7 @@ return{
|
|||||||
},
|
},
|
||||||
app_dtw={
|
app_dtw={
|
||||||
reset="重置",
|
reset="重置",
|
||||||
|
arcade="街机",
|
||||||
mode="模式",
|
mode="模式",
|
||||||
},
|
},
|
||||||
savedata={
|
savedata={
|
||||||
|
|||||||
@@ -21,16 +21,17 @@ local state,progress
|
|||||||
local startTime,time
|
local startTime,time
|
||||||
local keyTime
|
local keyTime
|
||||||
local speed,maxSpeed
|
local speed,maxSpeed
|
||||||
|
local arcade,rollSpeed
|
||||||
|
|
||||||
|
|
||||||
local tileColor={
|
local tileColor={
|
||||||
COLOR.black,
|
{0,0,0},
|
||||||
COLOR.dRed,
|
{.3,0,0},
|
||||||
COLOR.dG,
|
{0,.3,0},
|
||||||
COLOR.dB,
|
{0,0,.3},
|
||||||
COLOR.dY,
|
{.3,.3,0},
|
||||||
COLOR.dSky,
|
{0,.1,.3},
|
||||||
COLOR.dPurple,
|
{.2,0,.3},
|
||||||
}
|
}
|
||||||
local modeName={
|
local modeName={
|
||||||
"Normal",
|
"Normal",
|
||||||
@@ -96,8 +97,9 @@ local function reset()
|
|||||||
progress={}
|
progress={}
|
||||||
state,time=0,0
|
state,time=0,0
|
||||||
score=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
|
height=0
|
||||||
diePos=false
|
diePos=false
|
||||||
end
|
end
|
||||||
@@ -106,6 +108,7 @@ local scene={}
|
|||||||
|
|
||||||
function scene.sceneInit()
|
function scene.sceneInit()
|
||||||
mode=1
|
mode=1
|
||||||
|
arcade=true
|
||||||
reset()
|
reset()
|
||||||
BG.set("grey")
|
BG.set("grey")
|
||||||
BGM.play("way")
|
BGM.play("way")
|
||||||
@@ -165,6 +168,8 @@ function scene.keyDown(key)
|
|||||||
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()
|
||||||
|
elseif key=="w"and state==0 then
|
||||||
|
arcade=not arcade
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -181,62 +186,80 @@ end
|
|||||||
|
|
||||||
function scene.update()
|
function scene.update()
|
||||||
if state==1 then
|
if state==1 then
|
||||||
time=TIME()-startTime
|
|
||||||
local t=TIME()
|
local t=TIME()
|
||||||
|
time=t-startTime
|
||||||
local v=0
|
local v=0
|
||||||
for i=2,20 do v=v+i*(i-1)*.3/(t-keyTime[i])end
|
for i=2,20 do v=v+i*(i-1)*.3/(t-keyTime[i])end
|
||||||
speed=speed*.99+v*.01
|
speed=speed*.99+v*.01
|
||||||
if speed>maxSpeed then maxSpeed=speed end
|
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
|
end
|
||||||
height=height*.6
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function scene.draw()
|
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,300)
|
mStr(modeName[mode],155,380)
|
||||||
|
|
||||||
--Draw speed
|
if arcade then
|
||||||
setFont(45)
|
--Draw rolling speed
|
||||||
gc.setColor(1,.6,.6)
|
mStr(format("%.2f/s",rollSpeed/2),155,490)
|
||||||
mStr(format("%.2f",maxSpeed/60),155,400)
|
else
|
||||||
gc.setColor(1,1,1)
|
--Draw speed
|
||||||
mStr(format("%.2f",speed/60),155,460)
|
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
|
--Draw time
|
||||||
setFont(45)
|
setFont(45)
|
||||||
gc.print(format("%.3f",time),1030,70)
|
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
|
--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(tileColor[mode])
|
gc.setColor(tileColor[mode])
|
||||||
for i=1,#pos do
|
gc.push("transform")
|
||||||
if pos[i]<10 then
|
gc.translate(0,720-height+8)
|
||||||
gc.rectangle("fill",130+170*pos[i]+8,720-i*120-height+8,170-16,120-16)
|
for i=1,#pos do
|
||||||
else
|
if pos[i]<10 then
|
||||||
gc.rectangle("fill",130+170*(pos[i]%10)+8,720-i*120-height+8,170-16,120-16)
|
gc.rectangle("fill",130+170*pos[i]+8,-i*120,170-16,120-16)
|
||||||
gc.rectangle("fill",130+170*int(pos[i]/10)+8,720-i*120-height+8,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
|
||||||
end
|
gc.pop()
|
||||||
|
|
||||||
--Draw track line
|
--Draw track line
|
||||||
gc.setColor(0,0,0)
|
gc.setColor(0,0,0)
|
||||||
gc.setLineWidth(4)
|
gc.setLineWidth(2)
|
||||||
for x=1,5 do
|
for x=1,5 do
|
||||||
x=130+170*x
|
x=130+170*x
|
||||||
gc.line(x,0,x,720)
|
gc.line(x,0,x,720)
|
||||||
end
|
end
|
||||||
for y=0,6 do
|
for y=0,6 do
|
||||||
y=720-120*y-height
|
y=720-120*y-height%120
|
||||||
gc.line(300,y,980,y)
|
gc.line(300,y,980,y)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -259,6 +282,7 @@ end
|
|||||||
scene.widgetList={
|
scene.widgetList={
|
||||||
WIDGET.newButton{name="reset", x=155,y=100,w=180,h=100,color="lGreen",font=40,code=pressKey"r"},
|
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.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},
|
WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,font=40,code=backScene},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user