整理代码
This commit is contained in:
@@ -1,48 +1,47 @@
|
|||||||
local gc=love.graphics
|
local gc_setColor,gc_draw=love.graphics.setColor,love.graphics.draw
|
||||||
local gc_draw=gc.draw
|
local ply_applyField=PLY.draw.applyField
|
||||||
local function puzzleCheck(P)
|
|
||||||
local D=P.modeData
|
|
||||||
local F=FIELD[D.finished+1]
|
|
||||||
for y=1,20 do
|
|
||||||
local L=P.field[y]
|
|
||||||
for x=1,10 do
|
|
||||||
local a,b=F[y][x],L and L[x]or 0
|
|
||||||
if a~=0 then
|
|
||||||
if a==-1 then if b>0 then return end
|
|
||||||
elseif a<12 then if a~=b then return end
|
|
||||||
elseif a>7 then if b==0 then return end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
D.finished=D.finished+1
|
|
||||||
if FIELD[D.finished+1]then
|
|
||||||
P.waiting=26
|
|
||||||
for _=#P.field,1,-1 do
|
|
||||||
FREEROW.discard(P.field[_])
|
|
||||||
FREEROW.discard(P.visTime[_])
|
|
||||||
P.field[_],P.visTime[_]=nil
|
|
||||||
end
|
|
||||||
SYSFX.newShade(1.4,P.absFieldX,P.absFieldY,300*P.size,610*P.size,.3,1,.3)
|
|
||||||
SFX.play('reach')
|
|
||||||
D.showMark=0
|
|
||||||
else
|
|
||||||
D.showMark=1
|
|
||||||
P:win('finish')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return{
|
return{
|
||||||
color=COLOR.white,
|
color=COLOR.white,
|
||||||
env={
|
env={
|
||||||
fkey1=function(P)P.modeData.showMark=1-P.modeData.showMark end,
|
fkey1=function(P)P.modeData.showMark=1-P.modeData.showMark end,
|
||||||
dropPiece=puzzleCheck,
|
dropPiece=function(P)
|
||||||
|
local D=P.modeData
|
||||||
|
local F=FIELD[D.finished+1]
|
||||||
|
for y=1,20 do
|
||||||
|
local L=P.field[y]
|
||||||
|
for x=1,10 do
|
||||||
|
local a,b=F[y][x],L and L[x]or 0
|
||||||
|
if a~=0 then
|
||||||
|
if a==-1 then if b>0 then return end
|
||||||
|
elseif a<12 then if a~=b then return end
|
||||||
|
elseif a>7 then if b==0 then return end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
D.finished=D.finished+1
|
||||||
|
if FIELD[D.finished+1]then
|
||||||
|
P.waiting=26
|
||||||
|
for _=#P.field,1,-1 do
|
||||||
|
FREEROW.discard(P.field[_])
|
||||||
|
FREEROW.discard(P.visTime[_])
|
||||||
|
P.field[_],P.visTime[_]=nil
|
||||||
|
end
|
||||||
|
SYSFX.newShade(1.4,P.absFieldX,P.absFieldY,300*P.size,610*P.size,.3,1,.3)
|
||||||
|
SFX.play('reach')
|
||||||
|
D.showMark=0
|
||||||
|
else
|
||||||
|
D.showMark=1
|
||||||
|
P:win('finish')
|
||||||
|
end
|
||||||
|
end,
|
||||||
mesDisp=function(P)
|
mesDisp=function(P)
|
||||||
PLY.draw.applyField(P)
|
ply_applyField(P)
|
||||||
if P.modeData.showMark==0 then
|
if P.modeData.showMark==0 then
|
||||||
local mark=TEXTURE.puzzleMark
|
local mark=TEXTURE.puzzleMark
|
||||||
local F=FIELD[P.modeData.finished+1]
|
local F=FIELD[P.modeData.finished+1]
|
||||||
gc.setColor(1,1,1)
|
gc_setColor(1,1,1)
|
||||||
for y=1,20 do for x=1,10 do
|
for y=1,20 do for x=1,10 do
|
||||||
local T=F[y][x]
|
local T=F[y][x]
|
||||||
if T~=0 then
|
if T~=0 then
|
||||||
|
|||||||
Reference in New Issue
Block a user