注释后加空格

联网稍微推进
This commit is contained in:
MrZ_26
2022-10-03 02:43:51 +08:00
parent 06f4bb4e1a
commit f8d17b23b6
121 changed files with 1628 additions and 1622 deletions

View File

@@ -24,18 +24,18 @@ function scene.keyDown(key)
end
function scene.draw()
--Texts
-- Texts
setFont(20)
gc.setColor(COLOR.Z)
for i=1,#text.aboutTexts do
gc.print(text.aboutTexts[i],62,35*i)
end
--Lib used
-- Lib used
setFont(15)
gc.print(text.used,495,426)--❤Flandre❤
gc.print(text.used,495,426)-- ❤Flandre❤
--Logo
-- Logo
gc.draw(TEXTURE.title,280,610,.1,.4+.03*sin(TIME()*2.6),nil,580,118)
end

View File

@@ -198,31 +198,31 @@ local frontColor={
COLOR.lG,COLOR.lB,COLOR.lB,COLOR.lB,
COLOR.lG,COLOR.lY,COLOR.lV,COLOR.lV,
COLOR.lG,COLOR.lY,COLOR.lV,COLOR.lV,
},--Colored(rank)
},-- Colored(rank)
rainbow={
COLOR.lR,COLOR.lR,COLOR.lR,COLOR.lR,
COLOR.lO,COLOR.lY,COLOR.lY,COLOR.lY,
COLOR.lO,COLOR.lG,COLOR.lB,COLOR.lB,
COLOR.lO,COLOR.lG,COLOR.lB,COLOR.lB,
},--Rainbow(rank)
},-- Rainbow(rank)
color2={
COLOR.lR,COLOR.lR,COLOR.lR,COLOR.lR,
COLOR.lB,COLOR.lB,COLOR.lB,COLOR.lB,
COLOR.lG,COLOR.lY,COLOR.lV,COLOR.lV,
COLOR.lG,COLOR.lY,COLOR.lV,COLOR.lV,
},--Colored(row)
},-- Colored(row)
gray={
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
},--Gray
},-- Gray
black={
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
COLOR.Z,COLOR.Z,COLOR.Z,COLOR.Z,
},--Black
},-- Black
}
local backColor={
color1={
@@ -230,31 +230,31 @@ local backColor={
COLOR.dG,COLOR.dB,COLOR.dB,COLOR.dB,
COLOR.dG,COLOR.dY,COLOR.dP,COLOR.dP,
COLOR.dG,COLOR.dY,COLOR.dP,COLOR.dP,
},--Colored(rank)
},-- Colored(rank)
rainbow={
COLOR.dR,COLOR.dR,COLOR.dR,COLOR.dR,
COLOR.dO,COLOR.dY,COLOR.dY,COLOR.dY,
COLOR.dO,COLOR.dG,COLOR.dB,COLOR.dB,
COLOR.dO,COLOR.dG,COLOR.dB,COLOR.dB,
},--Rainbow(rank)
},-- Rainbow(rank)
color2={
COLOR.dR,COLOR.dR,COLOR.dR,COLOR.dR,
COLOR.dB,COLOR.dB,COLOR.dB,COLOR.dB,
COLOR.dG,COLOR.dY,COLOR.dP,COLOR.dP,
COLOR.dG,COLOR.dY,COLOR.dP,COLOR.dP,
},--Colored(row)
},-- Colored(row)
gray={
COLOR.dH,COLOR.dH,COLOR.dH,COLOR.dH,
COLOR.dH,COLOR.dH,COLOR.dH,COLOR.dH,
COLOR.dH,COLOR.dH,COLOR.dH,COLOR.dH,
COLOR.dH,COLOR.dH,COLOR.dH,COLOR.dH,
},--Gray
},-- Gray
black={
COLOR.D,COLOR.D,COLOR.D,COLOR.D,
COLOR.D,COLOR.D,COLOR.D,COLOR.D,
COLOR.D,COLOR.D,COLOR.D,COLOR.D,
COLOR.D,COLOR.D,COLOR.D,COLOR.D,
},--Black
},-- Black
}
function scene.draw()
FONT.set(40)
@@ -266,15 +266,15 @@ function scene.draw()
gc.print(push,1026,180)
if state==2 then
--Draw no-setting area
-- Draw no-setting area
gc.setColor(1,0,0,.3)
gc.rectangle('fill',15,295,285,340)
gc.setColor(.9,.9,0)--win
gc.setColor(.9,.9,0)-- win
elseif state==1 then
gc.setColor(.9,.9,.9)--game
gc.setColor(.9,.9,.9)-- game
elseif state==0 then
gc.setColor(.2,.8,.2)--ready
gc.setColor(.2,.8,.2)-- ready
end
gc.setLineWidth(10)
gc.rectangle('line',313,33,654,654,18)

View File

@@ -54,13 +54,13 @@ local tileColor={
{.22,.19,.17},
}
local tileFont={
80,80,80,--2/4/8
70,70,70,--16/32/64
60,60,60,--128/256/512
55,55,55,55,--1024/2048/4096/8192
50,50,50,--16384/32768/65536
45,45,45,--131072/262144/524288
30,--1048576
80,80,80,-- 2/4/8
70,70,70,-- 16/32/64
60,60,60,-- 128/256/512
55,55,55,55,-- 1024/2048/4096/8192
50,50,50,-- 16384/32768/65536
45,45,45,-- 131072/262144/524288
30,-- 1048576
}
local tileName={[0]="X","2","4","8","16","32","64","128","256","512","1024","2048","4096","8192","16384","32768","65536","131072","262144","524288","2^20"}
local function airExist()
@@ -71,7 +71,7 @@ local function airExist()
end
end
local function newTile()
--Select position & generate number
-- Select position & generate number
nextPos=(nextPos+6)%16+1
while board[nextPos] do
nextPos=(nextPos-4)%16+1
@@ -80,11 +80,11 @@ local function newTile()
prevPos=nextPos
prevSpawnTime=0
--Fresh score
-- Fresh score
score=score+2^nextTile
TEXT.show("+"..2^nextTile,1130+rnd(-60,60),575+rnd(-30,30),30,'score',1.5)
--Generate next number
-- Generate next number
nextCD=nextCD-1
if nextCD>0 then
nextTile=1
@@ -93,10 +93,10 @@ local function newTile()
nextCD=rnd(8,12)
end
--Check if board is full
-- Check if board is full
if airExist() then return end
--Check if board is locked in all-directions
-- Check if board is locked in all-directions
for i=1,12 do
if board[i]==board[i+4] then
return
@@ -112,7 +112,7 @@ local function newTile()
end
end
--Die.
-- Die.
state=2
SFX.play(maxTile>=10 and 'win' or 'fail')
end
@@ -139,10 +139,10 @@ local function squash(L)
p1=p1+1
end
else
if not L[p1] then--air←2
if not L[p1] then-- air←2
L[p1],L[p2]=L[p2],false
moved=true
elseif L[p1]==L[p2] then--2←2
elseif L[p1]==L[p2] then-- 2←2
L[p1],L[p2]=L[p1]+1,false
if L[p1]>maxTile then
freshMaxTile()
@@ -150,11 +150,11 @@ local function squash(L)
L[p2]=false
p1=p1+1
moved=true
elseif p1+1~=p2 then--2←4
elseif p1+1~=p2 then-- 2←4
L[p1+1],L[p2]=L[p2],false
p1=p1+1
moved=true
else--2,4
else-- 2,4
p1=p1+1
end
end
@@ -351,14 +351,14 @@ function scene.draw()
gc.print(("%.3f"):format(time),1000,10)
gc.print(move,1000,45)
--Progress time list
-- Progress time list
setFont(20)
setColor(.6,.6,.6)
for i=1,#progress do
gc.print(progress[i],1000,65+20*i)
end
--Repeater
-- Repeater
gc.setLineWidth(6)
setFont(25)
for i=1,2 do
@@ -377,27 +377,27 @@ function scene.draw()
gc.print(repeater.seq[i],1000,313+60*i)
end
--Score
-- Score
setFont(40)
setColor(1,.7,.7)
GC.mStr(score,1130,510)
--Messages
-- Messages
if state==2 then
--Draw no-setting area
-- Draw no-setting area
setColor(1,0,0,.3)
rectangle('fill',15,265,285,140)
setColor(.9,.9,0)--win
setColor(.9,.9,0)-- win
elseif state==1 then
setColor(.9,.9,.9)--game
setColor(.9,.9,.9)-- game
elseif state==0 then
setColor(.2,.8,.2)--ready
setColor(.2,.8,.2)-- ready
end
gc.setLineWidth(10)
rectangle('line',310,30,660,660)
--Board
-- Board
for i=1,16 do
if board[i] then
local x,y=1+(i-1)%4,int((i+3)/4)
@@ -429,7 +429,7 @@ function scene.draw()
end
end
--Next indicator
-- Next indicator
setColor(1,1,1)
if nextCD<=12 then
for i=1,nextCD do
@@ -437,7 +437,7 @@ function scene.draw()
end
end
--Next
-- Next
setFont(40)
gc.print("Next",50,195)
if nextTile>1 then
@@ -446,27 +446,27 @@ function scene.draw()
setFont(70)
GC.mStr(tileName[nextTile],220,175)
--Skip CoolDown
-- Skip CoolDown
if skipper.cd and skipper.cd>0 then
setFont(50)
setColor(1,1,.5)
GC.mStr(skipper.cd,155,600)
end
--Skip mark
-- Skip mark
if skipper.used then
setColor(1,1,.5)
gc.circle('fill',280,675,10)
end
--New tile position
-- New tile position
local x,y=1+(prevPos-1)%4,int((prevPos+3)/4)
gc.setLineWidth(8)
setColor(.2,.8,0,prevSpawnTime)
local d=25-prevSpawnTime*25
rectangle('line',x*160+163-d,y*160-117-d,154+2*d,154+2*d,15)
--Touch control border line
-- Touch control border line
if tapControl then
gc.setLineWidth(6)
setColor(1,1,1,.2)

View File

@@ -96,11 +96,11 @@ function scene.draw()
end
if state==2 then
gc.setColor(.9,.9,0)--win
gc.setColor(.9,.9,0)-- win
elseif state==1 then
gc.setColor(.9,.9,.9)--game
gc.setColor(.9,.9,.9)-- game
elseif state==0 then
gc.setColor(.2,.8,.2)--ready
gc.setColor(.2,.8,.2)-- ready
end
FONT.set(100)

View File

@@ -130,15 +130,15 @@ scene.touchUp=scene.mouseDown
function scene.draw()
gc.push('transform')
--origin pos:0,140; scale:4
-- origin pos:0,140; scale:4
gc.translate(280,0)
gc.scale(8)
--Draw board
-- Draw board
gc.setColor(COLOR.dX)
gc.rectangle('fill',0,0,90,90)
--Draw target area
-- Draw target area
gc.setColor(1,1,1,math.sin((TIME()-placeTime)*5)*.1+.15)
if target then
gc.rectangle('fill',(target-1)%3*30,int((target-1)/3)*30,30,30)
@@ -146,7 +146,7 @@ function scene.draw()
gc.rectangle('fill',0,0,90,90)
end
--Draw cursor
-- Draw cursor
if curX then
gc.setColor(1,1,1,.3)
gc.rectangle('fill',(curX-1)%3*30+(curx-1)%3*10-.5,int((curX-1)/3)*30+int((curx-1)/3)*10-.5,11,11)
@@ -181,7 +181,7 @@ function scene.draw()
end
end
--Draw board line
-- Draw board line
gc.setLineWidth(.8)
for x=0,9 do
gc.setColor(1,1,1,x%3==0 and 1 or .3)
@@ -189,7 +189,7 @@ function scene.draw()
gc.line(0,10*x,90,10*x)
end
--Draw last pos
-- Draw last pos
if lastX then
gc.setColor(.5,1,.4,.8)
local r=.5+.5*math.sin(TIME()*6.26)
@@ -198,7 +198,7 @@ function scene.draw()
gc.pop()
if gameover then
--Draw result
-- Draw result
FONT.set(60)
if gameover==0 then
gc.setColor(1,.6,.6)
@@ -211,7 +211,7 @@ function scene.draw()
GC.mStr("TIE",1140,240)
end
else
--Draw current round mark
-- Draw current round mark
gc.setColor(COLOR.X)
gc.rectangle('fill',80,80,160,160)
gc.setColor(COLOR.Z)

View File

@@ -12,9 +12,9 @@ local keySounds={
local scene={}
local reg--register
local val--result value
local sym--symbol
local reg-- register
local val-- result value
local sym-- symbol
local function _autoReturn()
if reg and sym then

View File

@@ -75,24 +75,24 @@ function scene.update()
end
local scoreColor={
'Z',--0
'A',--20
'N',--40
'B',--60
'P',--80
'W',--100
'R','F','O','Y','lA',--200
'lN','lB','lP','lW','lR',--300
'lF','lO','lY','dA','dN',--400
'dB','dP','dW','dR','dF',--500
'dY','lH','H','dH',--before 600, black after
'Z',-- 0
'A',-- 20
'N',-- 40
'B',-- 60
'P',-- 80
'W',-- 100
'R','F','O','Y','lA',-- 200
'lN','lB','lP','lW','lR',-- 300
'lF','lO','lY','dA','dN',-- 400
'dB','dP','dW','dR','dF',-- 500
'dY','lH','H','dH',-- before 600, black after
}
function scene.draw()
--Spawn area
-- Spawn area
gc.setColor(1,1,1,.2)
gc.rectangle('fill',85,0,190,720)
--Power & Angle
-- Power & Angle
gc.setColor(COLOR.Z)
if state~=2 then
gc.setLineWidth(2)
@@ -104,7 +104,7 @@ function scene.draw()
end
end
--Info
-- Info
FONT.set(40)
if combo>1 then
gc.setColor(1,1,.6)
@@ -113,15 +113,15 @@ function scene.draw()
gc.setColor(COLOR[scoreColor[int(score/20)+1] or 'D'])
gc.print(score,300,30)
--Cannon ball
-- Cannon ball
gc.circle('fill',x,y,15)
--Arrow
-- Arrow
if y<-15 then
gc.print("",x-20.5,0)
end
--Target
-- Target
gc.setColor(1,1,.4)
gc.circle('fill',ex,ey,15)
end

View File

@@ -27,13 +27,13 @@ local commands={} do
details: an array of strings containing documents, shows when user types 'help [command]'.
]]
local cmdList={}--List of all non-alias commands
local cmdList={}-- List of all non-alias commands
--Basic
-- Basic
commands.help={
code=function(arg)
if #arg>0 then
--help [command]
-- help [command]
if commands[arg] then
if commands[arg].description then
log{C.H,("%s"):format(commands[arg].description)}
@@ -47,7 +47,7 @@ local commands={} do
log{C.Y,("No command called '%s'"):format(arg)}
end
else
--help
-- help
for i=1,#cmdList do
local cmd=cmdList[i]
local body=commands[cmd]
@@ -111,8 +111,8 @@ local commands={} do
},
}
--File
do--tree
-- File
do-- tree
local function tree(path,name,depth)
local info=love.filesystem.getInfo(path..name)
if info.type=='file' then
@@ -144,7 +144,7 @@ local commands={} do
},
}
end
do--del
do-- del
local function delFile(name)
if love.filesystem.remove(name) then
log{C.Y,("Deleted: '%s'"):format(name)}
@@ -231,7 +231,7 @@ local commands={} do
end
commands.mv={
code=function(arg)
--Check arguments
-- Check arguments
arg=arg:split(" ")
if #arg>2 then
log{C.lY,"Warning: file names must have no spaces"}
@@ -241,7 +241,7 @@ local commands={} do
return
end
--Check file exist
-- Check file exist
local info
info=love.filesystem.getInfo(arg[1])
if not (info and info.type=='file') then
@@ -254,21 +254,21 @@ local commands={} do
return
end
--Read file
-- Read file
local data,err1=love.filesystem.read('data',arg[1])
if not data then
log{C.R,("Failed to read file '%s': "):format(arg[1],err1 or "Unknown error")}
return
end
--Write file
-- Write file
local res,err2=love.filesystem.write(arg[2],data)
if not res then
log{C.R,("Failed to write file: "):format(err2 or "Unknown error")}
return
end
--Delete file
-- Delete file
if not love.filesystem.remove(arg[1]) then
log{C.R,("Failed to delete old file ''"):format(arg[1])}
return
@@ -315,7 +315,7 @@ local commands={} do
},
}
--System
-- System
commands.crash={
code=function() error("ERROR") end,
description="Manually crash the game",
@@ -545,7 +545,7 @@ local commands={} do
"Usage: support",
},
}
do--app
do-- app
local APPs={
{
code="calc",
@@ -754,7 +754,7 @@ local commands={} do
end,
}
--Game
-- Game
commands.rmconf={
code=function(key)
if #key>0 then
@@ -869,7 +869,7 @@ local commands={} do
description="Show a random tip",
}
--Network
-- Network
commands.switchhost={
code=function(arg)
arg=arg:split(" ")
@@ -944,7 +944,7 @@ local combKey={
end,
}
--Environment for user's function
-- Environment for user's function
local userG={
timer=TIME,
@@ -992,7 +992,7 @@ setmetatable(userG.package,dangerousLibMeta)
setmetatable(userG.io,dangerousLibMeta)
setmetatable(userG.os,dangerousLibMeta)
--Puzzle box
-- Puzzle box
local first_key={}
local fleg={
pw=the_secret,
@@ -1028,16 +1028,16 @@ function scene.keyDown(key)
local input=STRING.trim(inputBox:getText())
if input=="" then return end
--Write History
-- Write History
ins(history,input)
if history[27] then
rem(history,1)
end
hisPtr=nil
--Execute
-- Execute
if input:byte()==35 then
--Execute lua code
-- Execute lua code
log{C.lC,"> "..input}
local code,err=loadstring(input:sub(2))
if code then
@@ -1062,7 +1062,7 @@ function scene.keyDown(key)
log{C.R,"[SyntaxErr] ",C.R,err}
end
else
--Execute builtin command
-- Execute builtin command
log{C.lS,"> "..input}
local p=input:find(" ")
local cmd,arg
@@ -1081,7 +1081,7 @@ function scene.keyDown(key)
end
inputBox:clear()
--Insert empty line
-- Insert empty line
log""
elseif key=='up' then
if not hisPtr then

View File

@@ -125,7 +125,7 @@ function scene.update(dt)
if dt>.06 then dt=.06 end
dt=dt*600
--Update cubes' position
-- Update cubes' position
local cy=cubesY
local step=speed*dt*.005
for i=1,40 do
@@ -141,7 +141,7 @@ function scene.update(dt)
end
end
--Collision detect
-- Collision detect
if play then
for j=1,40 do
local i=(j+lastCube-2)%40+1
@@ -159,7 +159,7 @@ function scene.update(dt)
end
end
--Screen rotation
-- Screen rotation
if moveDir~=0 then
player=player+moveDir*dt*.003*speed^.8
if abs(rot)<.16 or moveDir*rot>0 then
@@ -220,42 +220,42 @@ local function _sunStencil()
gc.rectangle('fill',-60,-440,120,120)
end
function scene.draw()
--Health bar
-- Health bar
if life1>0 then
gc.setColor(1,0,0)
gc.rectangle('fill',640-life1*.64,710,life1*1.28,10)
end
--Draw player
-- Draw player
if play and inv%8<4 then
gc.setColor(COLOR.Z)
gc.rectangle('fill',620,670,40,40)
end
--Set screen rotation
-- Set screen rotation
gc.push('transform')
gc.translate(640,690)
gc.rotate(rot)
--Draw sun
-- Draw sun
gc.setStencilTest('notequal',1)
gc.stencil(_sunStencil)
gc.setColor(.7,.5,.3)
gc.circle('fill',0,-380-sunH,60)
gc.setStencilTest()
--Draw direction
-- Draw direction
if play then
gc.setLineWidth(3)
gc.setColor(1,1,1,.1)
gc.polygon('fill',-15,30,0,-440,15,30)
end
--Draw Horizon/Direction
-- Draw Horizon/Direction
gc.setColor(COLOR.Z)
gc.line(-942,-440,942,-440)
--Draw cubes
-- Draw cubes
for j=1,40 do
local i=(j+lastCube-2)%40+1
local Y=cubesY[i]
@@ -273,7 +273,7 @@ function scene.draw()
end
end
--Draw menu
-- Draw menu
if play then
setFont(60)
mStr(int(score),-300,-640)

View File

@@ -2,9 +2,9 @@ local gc=love.graphics
local rnd,int,max=math.random,math.floor,math.max
local setFont,mStr=FONT.set,GC.mStr
--This mini-game is written for TI-nSpire CX CAS many years ago.
--Deliberately, some grammar mistakes and typos in the 'great' list remained.
--So no need to correct them.
-- This mini-game is written for TI-nSpire CX CAS many years ago.
-- Deliberately, some grammar mistakes and typos in the 'great' list remained.
-- So no need to correct them.
local perfect={"Perfect!","Excellent!","Nice!","Good!","Great!","Just!","300"}
local great={"Pay attention!","Be carefully!","Teacher behind you!","Feel tired?","You are in danger!","Do your homework!","A good game!","Minecraft!","y=ax^2+bx+c!","No music?","Internet unavailable.","It's raining!","Too hard!","Shorter?","Higher!","English messages!","Hi!","^_^","Drop!","Colorful!",":)","100$","~~~wave~~~","★★★","中文!","NOW!!!!!","Also try the TEN!","I'm a programer!","Also try minesweeperZ!","This si Dropper!","Hold your calculatoor!","Look! UFO!","Bonjour!","[string]","Author:MrZ","Boom!","PvZ!","China!","TI-nspire!","I love LUA!"}
@@ -175,7 +175,7 @@ backColor.__index=function(t,lv)
end
setmetatable(backColor,backColor)
function scene.draw()
--Background
-- Background
local lv,height=int(camY/700),camY%700
gc.setColor(backColor[lv+1] or COLOR.D)
gc.rectangle('fill',0,720,1280,height-700)
@@ -205,7 +205,7 @@ function scene.draw()
gc.print("Ported / Rewritten / Balanced by MrZ",740,260)
end
if state~='menu' then
--High floor
-- High floor
gc.setColor(COLOR.Z)
gc.setLineWidth(2)
local y=690+camY-30*highFloor

View File

@@ -20,7 +20,7 @@ local keyTime
local speed,maxSpeed
local arcade,rollSpeed
local reset=error--function, defined later
local reset=error-- function, defined later
local bgm="secret7th"
local tileColor="black"
@@ -134,37 +134,37 @@ local generator={
Singlestream=function()
ins(pos,get1(pos[#pos] or 0))
end,
Light_Jumpstream=function()--2111
Light_Jumpstream=function()-- 2111
ins(pos,get2(pos[#pos] or 0))
ins(pos,get1(pos[#pos]))
ins(pos,get1(pos[#pos]))
ins(pos,get1(pos[#pos]))
end,
Dense_Jumpstream=function()--2121
Dense_Jumpstream=function()-- 2121
ins(pos,get2(pos[#pos] or 0))
ins(pos,get1(pos[#pos]))
ins(pos,get2(pos[#pos]))
ins(pos,get1(pos[#pos]))
end,
Light_Handstream=function()--3111
Light_Handstream=function()-- 3111
ins(pos,get3(pos[#pos] or 0))
ins(pos,get1(pos[#pos]))
ins(pos,get1(pos[#pos]))
ins(pos,get1(pos[#pos]))
end,
Dense_Handstream=function()--3121
Dense_Handstream=function()-- 3121
ins(pos,get3(pos[#pos] or 0))
ins(pos,get1(pos[#pos]))
ins(pos,get2(pos[#pos]))
ins(pos,get1(pos[#pos]))
end,
Light_Quadstream=function()--4111
Light_Quadstream=function()-- 4111
ins(pos,1234)
ins(pos,get1(pos[#pos-1] or 0))
ins(pos,get1(pos[#pos]))
ins(pos,get1(pos[#pos]))
end,
Quadstream=function()--4121
Quadstream=function()-- 4121
ins(pos,1234)
ins(pos,get1(pos[#pos-1] or 0))
ins(pos,get2(pos[#pos]))
@@ -306,36 +306,36 @@ local function boardStencil() gc.rectangle('fill',300,0,680,720) end
function scene.draw()
setFont(50)
if arcade then
--Draw rolling speed
-- Draw rolling speed
mStr(("%.2f/s"):format(rollSpeed/2),155,490)
else
--Draw speed
-- Draw speed
setFont(45)
gc.setColor(1,.6,.6)
mStr(("%.2f"):format(maxSpeed/60),155,460)
gc.setColor(COLOR.Z)
mStr(("%.2f"):format(speed/60),155,520)
--Progress time list
-- 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 time
-- Draw time
gc.setColor(COLOR.Z)
setFont(45)
gc.print(("%.3f"):format(time),1030,70)
end
--Draw mode
-- Draw mode
if state~=0 then
gc.setColor(COLOR.Z)
setFont(30)mStr(mode,155,212)
end
--Draw tiles
-- Draw tiles
gc.stencil(boardStencil)
gc.setStencilTest('equal',1)
gc.rectangle('fill',300,0,680,720)
@@ -351,7 +351,7 @@ function scene.draw()
end
gc.pop()
gc.setStencilTest()
--Draw track line
-- Draw track line
gc.setColor(COLOR.D)
gc.setLineWidth(2)
for x=1,5 do
@@ -363,13 +363,13 @@ function scene.draw()
gc.line(300,y,980,y)
end
--Draw red tile
-- Draw red tile
if diePos then
gc.setColor(1,.2,.2)
gc.rectangle('fill',130+170*diePos+8,600-height+8,170-16,120-16)
end
--Draw score
-- Draw score
setFont(100)
gc.push('transform')
gc.translate(640,26)

View File

@@ -72,7 +72,7 @@ local function resetBoard()
local colors=levels[level].color
field.c,field.r=levels[level].c,levels[level].r
local total=field.r*field.c/2--Total cell count
local total=field.r*field.c/2-- Total cell count
local pool=TABLE.new(int(total/colors),colors)
for i=1,total%colors do pool[i]=pool[i]+1 end
for i=1,#pool do pool[i]=pool[i]*2 end
@@ -117,7 +117,7 @@ local function addPoint(list,x,y)
end
end
local function checkLink(x1,y1,x2,y2)
--Y-X-Y Check
-- Y-X-Y Check
local bestLen,bestLine=1e99,false
do
if x1>x2 then x1,y1,x2,y2=x2,y2,x1,y1 end
@@ -141,7 +141,7 @@ local function checkLink(x1,y1,x2,y2)
::CONTINUE_nextRow::
end
end
--X-Y-X Check
-- X-Y-X Check
do
if y1>y2 then x1,y1,x2,y2=x2,y2,x1,y1 end
local ulx,urx,dlx,drx=x1,x1,x2,x2
@@ -177,18 +177,18 @@ local function tap(x,y)
if line then
ins(lines,{time=0,line=line})
--Clear
-- Clear
field[y][x]=false
field[selY][selX]=false
field.remain=field.remain-1
field.full=false
--Score
-- Score
local s=1000+int(combo^.9)
score=score+s
TEXT.show("+"..s,1205,600,20,'score')
--Combo
-- Combo
if comboTime==0 then
combo=0
noComboBreak=false
@@ -197,7 +197,7 @@ local function tap(x,y)
combo=combo+1
if combo>maxCombo then maxCombo=combo end
--Check win
-- Check win
if field.remain==0 then
if noComboBreak then
SFX.play('emit')
@@ -295,15 +295,15 @@ end
function scene.draw()
gc.push('transform')
--Camera
-- Camera
gc.translate(field.x,field.y)
gc.scale(field.w/field.c,field.h/field.r)
--Background
-- Background
gc.setColor(COLOR.dX)
gc.rectangle('fill',0,0,field.w,field.h)
--Matrix
-- Matrix
local mono=state==0 or invis and not field.full
if mono then
gc_setColor(COLOR.dH)
@@ -328,51 +328,51 @@ function scene.draw()
end
end
--Selecting box
-- Selecting box
gc.setLineWidth(.1)
if selX then
gc_setColor(1,1,1)
gc_rectangle('line',selX-1+.05,selY-1+.05,.9,.9)
end
--Clearing lines
-- Clearing lines
gc.translate(-.5,-.5)
for i=1,#lines do
gc_setColor(1,1,1,1-lines[i].time)
gc.line(lines[i].line)
end
gc.pop()
--Frame
-- Frame
if state==2 then
gc.setColor(.9,.9,0)--win
gc.setColor(.9,.9,0)-- win
elseif state==1 then
gc.setColor(.9,.9,.9)--game
gc.setColor(.9,.9,.9)-- game
elseif state==0 then
gc.setColor(.2,.8,.2)--ready
gc.setColor(.2,.8,.2)-- ready
end
gc.setLineWidth(6)
gc.rectangle('line',field.x-5,field.y-5,field.w+10,field.h+10)
--Draw no-setting area
-- Draw no-setting area
if state==2 then
gc.setColor(1,0,0,.3)
gc.rectangle('fill',0,100,155,80)
end
--Maxcombo
-- Maxcombo
setFont(20)gc.setColor(COLOR.dF)
gc.print(maxCombo,1142,1)
--Time
-- Time
setFont(30)gc.setColor(COLOR.Z)
gc.print(("%.3f"):format(time),1140,20)
--Progress time list
-- Progress time list
setFont(15)gc.setColor(.6,.6,.6)
for i=1,#progress do gc.print(progress[i],1140,40+20*i) end
--Combo Rectangle
-- Combo Rectangle
if comboTime>0 then
local r=32*comboTime^.3
gc.setColor(1,1,1,min(.6+comboTime,1)*.25)
@@ -382,7 +382,7 @@ function scene.draw()
gc.rectangle('line',1205-r,440-r,2*r,2*r,4)
end
--Combo Text
-- Combo Text
setFont(60)
if combo>50 then
gc.setColor(1,.2,.2,min(.3+comboTime*.5,1)*min(comboTime,1))
@@ -391,7 +391,7 @@ function scene.draw()
gc.setColor(1,1,max(1-combo*.001,.5),min(.4+comboTime,1))
mStr(combo,1205,398)
--Score
-- Score
setFont(25)gc.setColor(COLOR.Z)
mStr(score1,1205,560)
end

View File

@@ -1,6 +1,6 @@
local gc=love.graphics
local state--0=playing, 1=gameover
local state-- 0=playing, 1=gameover
local timeUsed
local level
local showNum

View File

@@ -19,7 +19,7 @@ function scene.sceneInit()
end
function scene.touchDown(x,y,k)
--TODO
-- TODO
end
scene.mouseDown=scene.touchDown

View File

@@ -49,11 +49,11 @@ function scene.keyDown(key,isRep)
SCN.back()
end
elseif key=='space' then
if state==0 then--main
if state==0 then-- main
if timer==0 then
state=1
end
elseif state==3 then--play
elseif state==3 then-- play
local c=(math.floor((pos-ang)*side/tau)-1)%side+1
if hit[c]==0 then
hit[c]=1
@@ -87,12 +87,12 @@ function scene.touchDown()
end
function scene.update()
if state==0 then--main
if state==0 then-- main
ang=ang-.02
if ang>0 then ang=ang-tau end
if pos<ang then pos=pos+tau end
if timer>0 then timer=timer-1 end
elseif state==1 or state==2 then--zoom
elseif state==1 or state==2 then-- zoom
ang=ang+.02+timer/260
pos=pos-.016
if ang>0 then ang=ang-tau end
@@ -115,7 +115,7 @@ function scene.update()
state=3
end
end
elseif state==3 then--play
elseif state==3 then-- play
ang=ang+.02
pos=pos-.016
if ang>0 then

View File

@@ -8,11 +8,11 @@ local rnd=math.random
local scene={}
local state
local bx,by=640,360--Ball posotion
local vx,vy=0,0--Ball velocity
local ry=0--Rotation Y
local bx,by=640,360-- Ball posotion
local vx,vy=0,0-- Ball velocity
local ry=0-- Rotation Y
local p1,p2--Player data
local p1,p2-- Player data
function scene.sceneInit()
BG.set('none')
@@ -70,9 +70,9 @@ end
function scene.touchMove(x,y)(x<640 and p1 or p2).y0=y end
function scene.mouseMove(x,y)(x<640 and p1 or p2).y0=y end
--Rect Area X:150~1130 Y:20~700
-- Rect Area X:150~1130 Y:20~700
function scene.update()
--Update pads
-- Update pads
local P=p1
while P do
if P.y0 then
@@ -105,7 +105,7 @@ function scene.update()
P=P==p1 and p2
end
--Update ball
-- Update ball
bx,by=bx+vx,by+vy
if ry~=0 then
if ry>0 then
@@ -116,7 +116,7 @@ function scene.update()
vy=vy+.1
end
end
if state==1 then--Playing
if state==1 then-- Playing
if bx<160 or bx>1120 then
P=bx<160 and p1 or p2
local d=by-P.y
@@ -134,7 +134,7 @@ function scene.update()
vy,ry=-vy,-ry
SFX.play('collect')
end
elseif state==2 then--Game over
elseif state==2 then-- Game over
if bx<-120 or bx>1400 or by<-40 or by>760 then
P=bx>640 and p1 or p2
P.score=P.score+1
@@ -150,25 +150,25 @@ function scene.update()
end
function scene.draw()
--Draw score
-- Draw score
gc.setColor(.4,.4,.4)
FONT.set(100)
GC.mStr(p1.score,470,20)
GC.mStr(p2.score,810,20)
--Draw boundary
-- Draw boundary
gc.setColor(COLOR.Z)
gc.setLineWidth(4)
gc.line(134,20,1146,20)
gc.line(134,700,1146,700)
--Draw ball & speed line
-- Draw ball & speed line
gc.setColor(1,1,1-abs(ry)*.16)
gc.circle('fill',bx,by,10)
gc.setColor(1,1,1,.1)
gc.line(bx+vx*22,by+vy*22,bx+vx*30,by+vy*30)
--Draw pads
-- Draw pads
gc.setColor(1,.8,.8)
gc.rectangle('fill',134,p1.y-50,16,100)
gc.setColor(.8,.8,1)

View File

@@ -31,12 +31,12 @@ function scene.keyDown(key,isRep)
elseif state==2 and #key==1 then
key=("qapl"):find(key,nil,true)
if key then
--BEAUTIFUL LOGIC BELOW:
-- BEAUTIFUL LOGIC BELOW:
--early = error, [UP-key]==[target is up] = correct sfx, else = wrong sfx
-- early = error, [UP-key]==[target is up] = correct sfx, else = wrong sfx
SFX.play(ct>6 and 'finesseError' or key%2==1==up and 'reach' or 'fail')
--(early && P2-key || not early && [P1-key]==[target is up]) = P1 win, else P2 win
-- (early && P2-key || not early && [P1-key]==[target is up]) = P1 win, else P2 win
if ct>6 and key>2 or ct<=6 and key%4<2==up then
winner=1; s1=s1+1
else
@@ -56,20 +56,20 @@ function scene.touchDown(x,y)
)
end
function scene.update()
if state==0 then--Menu
if state==0 then-- Menu
if ct>0 then
ct=ct-1
elseif rnd()<.00626 then
ct=30
end
elseif state==1 then--Waiting
elseif state==1 then-- Waiting
ct=ct-1
if ct==0 then
ct=rnd(26,162)
up=rnd()<.5
state=2
end
elseif state==2 then--Winking
elseif state==2 then-- Winking
ct=ct-1
if ct==0 then ct=6 end
elseif state==3 then
@@ -85,21 +85,21 @@ function scene.update()
end
end
function scene.draw()
--Dividing line
-- Dividing line
gc.setLineWidth(10)
gc.setColor(1,1,1,.9)
gc.line(640,0,640,720)
gc.setColor(1,1,1,.3)
gc.line(500,360,780,360)
--Help
-- Help
setFont(100)
mStr("Q",80,100)
mStr("A",80,480)
mStr("P",1200,100)
mStr("L",1200,480)
--Score
-- Score
setFont(80)
gc.printf(s1,50,300,200)
gc.printf(s2,1030,300,200,'right')

View File

@@ -128,16 +128,16 @@ function scene.draw()
gc.setColor(COLOR.dX)
gc.rectangle('fill',310,30,660,660)
if state==2 then
gc.setColor(.9,.9,0)--win
gc.setColor(.9,.9,0)-- win
elseif state==1 then
gc.setColor(.9,.9,.9)--game
gc.setColor(.9,.9,.9)-- game
elseif state==0 then
gc.setColor(.2,.8,.2)--ready
gc.setColor(.2,.8,.2)-- ready
end
gc.setLineWidth(10)
gc.rectangle('line',310,30,660,660)
--Draw no-setting area
-- Draw no-setting area
if state==2 then
gc.setColor(1,0,0,.3)
gc.rectangle('fill',15,295,285,250)

View File

@@ -232,14 +232,14 @@ function scene.draw()
gc.print(("%.3f"):format(time),1026,50)
gc.print(score,1026,100)
--Progress time list
-- Progress time list
setFont(25)
setColor(.7,.7,.7)
for i=1,#progress do
gc.print(progress[i],1000,140+30*i)
end
--Previews
-- Previews
if nexts then
gc.setColor(COLOR.dX)
rectangle('fill',20,450,280,75)
@@ -254,7 +254,7 @@ function scene.draw()
end
if state==2 then
--Draw no-setting area
-- Draw no-setting area
setColor(1,0,0,.3)
rectangle('fill',15,200,285,210)
end

View File

@@ -7,20 +7,20 @@ local ins,rem=table.insert,table.remove
local setFont,mStr=FONT.set,GC.mStr
local tileColor={
[-2]=COLOR.R, --Bomb
[-1]=COLOR.H, --Stone
{.39, 1.0, .39},--Tile 1
{.39, .39, 1.0},--Tile 2
{1.0, .70, .31},--Tile 3
{.94, .31, .31},--Tile 4
{.00, .71, .12},--Tile 5
{.90, .20, .90},--Tile 6
{.94, .47, .39},--Tile 7
{.90, .00, .00},--Tile 8
{.86, .86, .31},--Tile 9
{.78, .31, .00},--Tile 10
{.78, .55, .04},--Tile 11
{.12, .12, .51},--Tile 12
[-2]=COLOR.R, -- Bomb
[-1]=COLOR.H, -- Stone
{.39, 1.0, .39},-- Tile 1
{.39, .39, 1.0},-- Tile 2
{1.0, .70, .31},-- Tile 3
{.94, .31, .31},-- Tile 4
{.00, .71, .12},-- Tile 5
{.90, .20, .90},-- Tile 6
{.94, .47, .39},-- Tile 7
{.90, .00, .00},-- Tile 8
{.86, .86, .31},-- Tile 9
{.78, .31, .00},-- Tile 10
{.78, .55, .04},-- Tile 11
{.12, .12, .51},-- Tile 12
}
local textColor={
[-2]=COLOR.dR,
@@ -222,29 +222,29 @@ function player:drawBoard()
gc.push('transform')
gc.translate(self.x,self.y)
--Board background
-- Board background
setColor(COLOR.dX)
rectangle("fill",0,0,600,600)
--Hold slot
-- Hold slot
setColor(0,1,1,.4)
rectangle("fill",0,0,100,100)
gc.setLineWidth(10)
setColor(COLOR.lC)
rectangle("line",5,5,90,90)
--Hold tile
-- Hold tile
setFont(60)
drawTile(1,1,self.hold)
--Board tiles
-- Board tiles
local b=self.board
for y=1,6 do for x=1,6 do
drawTile(x,y,b[y][x])
end end
--Board lines
-- Board lines
setColor(COLOR.Z)
gc.setLineWidth(2)
for x=1,5 do gc.line(x*100,0,x*100,600) end
@@ -252,7 +252,7 @@ function player:drawBoard()
gc.setLineWidth(6)
rectangle("line",0,0,600,600)
--Select box
-- Select box
if self.selectX then
local c=tileColor[self.nexts[1]]
setColor(c[1],c[2],c[3],.6+.3*math.sin(TIME()*9.29))
@@ -325,7 +325,7 @@ function scene.draw()
gc.print(("%.3f"):format(player.time),1026,50)
gc.print(player.score,1026,100)
--Progress time list
-- Progress time list
setFont(25)
setColor(.7,.7,.7)
for i=1,#player.progress do

View File

@@ -127,13 +127,13 @@ function scene.draw()
gc.translate(0,-WIDGET.scrollPos)
setFont(30)
--Sequence
-- Sequence
if #MISSION>0 then
gc.setColor(1,CUSTOMENV.missionKill and 0 or 1,int(TIME()*6.26)%2)
gc.print("#"..#MISSION,70,220)
end
--Field content
-- Field content
if #FIELD[1]>0 then
gc.push('transform')
gc.translate(330,240)
@@ -159,7 +159,7 @@ function scene.draw()
end
end
--Sequence
-- Sequence
if #BAG>0 then
gc.setColor(1,1,int(TIME()*6.26)%2)
gc.print("#"..#BAG,615,220)
@@ -178,7 +178,7 @@ scene.widgetList={
WIDGET.newKey{name='reset', x=1110,y=90,w=230,h=90,color='R',code=pressKey'delete'},
WIDGET.newKey{name='mod', x=1110,y=200,w=230,h=90,color='Z',code=pressKey'f1'},
--Mission / Field / Sequence
-- Mission / Field / Sequence
WIDGET.newKey{name='mission', x=170,y=180,w=240,h=80,color='N',font=25,code=pressKey'm'},
WIDGET.newKey{name='field', x=450,y=180,w=240,h=80,color='A',font=25,code=pressKey'f'},
WIDGET.newKey{name='sequence', x=730,y=180,w=240,h=80,color='W',font=25,code=pressKey's'},
@@ -186,7 +186,7 @@ scene.widgetList={
WIDGET.newText{name='noMsn', x=50, y=220,align='L',color='H',hideF=function() return MISSION[1] end},
WIDGET.newText{name='defSeq', x=610,y=220,align='L',color='H',hideF=function() return BAG[1] end},
--Selectors
-- Selectors
WIDGET.newSelector{name='opponent', x=170,y=330,w=260,color='R',list=sList.opponent, disp=CUSval('opponent'), code=CUSsto('opponent')},
WIDGET.newSelector{name='life', x=170,y=410,w=260,color='R',list=sList.life, disp=CUSval('life'), code=CUSsto('life')},
WIDGET.newSelector{name='pushSpeed', x=170,y=520,w=260,color='V',list=sList.pushSpeed, disp=CUSval('pushSpeed'), code=CUSsto('pushSpeed')},
@@ -205,17 +205,17 @@ scene.widgetList={
WIDGET.newSelector{name='hurry', x=730,y=680,w=260,color='G',list=sList.hurry,disp=CUSval('hurry'),code=CUSsto('hurry')},
WIDGET.newSelector{name='hang', x=730,y=760,w=260,color='G',list=sList.hang,disp=CUSval('hang'),code=CUSsto('hang')},
--Copy / Paste / Start
-- Copy / Paste / Start
WIDGET.newButton{name='copy', x=1070,y=300,w=310,h=70,color='lR',font=25,code=pressKey'cC'},
WIDGET.newButton{name='paste', x=1070,y=380,w=310,h=70,color='lB',font=25,code=pressKey'cV'},
WIDGET.newButton{name='play_clear', x=1070,y=460,w=310,h=70,color='lY',font=35,code=pressKey'play1'},
WIDGET.newButton{name='play_puzzle', x=1070,y=540,w=310,h=70,color='lM',font=35,code=pressKey'play2',hideF=function() return #FIELD[1]==0 end},
WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=pressKey'escape'},
--Rule set
-- Rule set
WIDGET.newSelector{name='eventSet', x=1050,y=760,w=340,color='H',list=sList.eventSet,disp=CUSval('eventSet'),code=CUSsto('eventSet')},
--Special rules
-- Special rules
WIDGET.newSwitch{name='ospin', x=850, y=830, lim=210,disp=CUSval('ospin'), code=CUSrev('ospin')},
WIDGET.newSwitch{name='fineKill', x=850, y=890, lim=210,disp=CUSval('fineKill'), code=CUSrev('fineKill')},
WIDGET.newSwitch{name='b2bKill', x=850, y=950, lim=210,disp=CUSval('b2bKill'), code=CUSrev('b2bKill')},
@@ -224,14 +224,14 @@ scene.widgetList={
WIDGET.newSwitch{name='deepDrop', x=1170,y=890, lim=250,disp=CUSval('deepDrop'), code=CUSrev('deepDrop')},
WIDGET.newSwitch{name='bone', x=1170,y=950, lim=250,disp=CUSval('bone'), code=CUSrev('bone')},
--Next & Hold
-- Next & Hold
WIDGET.newSelector{name='holdMode', x=310, y=890, w=300,color='lY',list=sList.holdMode,disp=CUSval('holdMode'),code=CUSsto('holdMode'),hideF=function() return CUSTOMENV.holdCount==0 end},
WIDGET.newSlider{name='nextCount', x=140, y=960, lim=130,w=180,axis={0,6,1},disp=CUSval('nextCount'),code=CUSsto('nextCount')},
WIDGET.newSlider{name='holdCount', x=140, y=1030,lim=130,w=180,axis={0,6,1},disp=CUSval('holdCount'),code=CUSsto('holdCount')},
WIDGET.newSwitch{name='infHold', x=560, y=960, lim=200, disp=CUSval('infHold'),code=CUSrev('infHold'),hideF=function() return CUSTOMENV.holdCount==0 end},
WIDGET.newSwitch{name='phyHold', x=560, y=1030,lim=200, disp=CUSval('phyHold'),code=CUSrev('phyHold'),hideF=function() return CUSTOMENV.holdCount==0 end},
--BG & BGM
-- BG & BGM
WIDGET.newSelector{name='bg', x=840, y=1090,w=250,color='Y',list=BG.getList(),disp=CUSval('bg'),code=function(i) CUSTOMENV.bg=i BG.set(i) end},
WIDGET.newSelector{name='bgm', x=1120,y=1090,w=250,color='Y',list=BGM.getList(),disp=CUSval('bgm'),code=function(i) CUSTOMENV.bgm=i BGM.play(i) end},
}

View File

@@ -8,11 +8,11 @@ local FIELD=FIELD
local scene={}
local curPen
local pens={-2,0,-1,[false]=false}--Color (air/smart)
local pens={-2,0,-1,[false]=false}-- Color (air/smart)
local penMode
local penPath={}
local penX,penY
local demo--If show x
local demo-- If show x
local page
local function isEmpty(L)
@@ -28,35 +28,35 @@ local penKey={
z=0,x=-1,c=-2,
}
local minoPosCode={
[102]=1,[1121]=1,--Z
[195]=2,[610]=2,--S
[39]=3,[1569]=3,[228]=3,[1091]=3,--J
[135]=4,[547]=4,[225]=4,[1602]=4,--L
[71]=5,[609]=5,[226]=5,[1122]=5,--T
[99]=6,--O
[15]=7,[4641]=7,--I
[1606]=8,[2273]=8,--Z5
[3139]=9,[740]=9,--S5
[103]=10,[1633]=10,[230]=10,[1123]=10,--P
[199]=11,[611]=11,[227]=11,[1634]=11,--Q
[738]=12,[3170]=12,[1252]=12,[1219]=12,--F
[2274]=13,[1126]=13,[1249]=13,[1730]=13,--E
[1095]=14,[737]=14,[3650]=14,[2276]=14,--T5
[167]=15,[1571]=15,[229]=15,[1603]=15,--U
[2183]=16,[551]=16,[3617]=16,[3716]=16,--V
[614]=17,[3169]=17,[1732]=17,[2243]=17,--W
[1250]=18,--X
[47]=19,[12833]=19,[488]=19,[9283]=19,--J5
[271]=20,[4643]=20,[481]=20,[13378]=20,--L5
[79]=21,[5665]=21,[484]=21,[9314]=21,--R
[143]=22,[4705]=22,[482]=22,[9794]=22,--Y
[110]=23,[9761]=23,[236]=23,[9313]=23,--N
[391]=24,[4706]=24,[451]=24,[5698]=24,--H
[31]=25,[21025]=25,--I5
[7]=26,[545]=26,--I3
[67]=27,[35]=27,[97]=27,[98]=27,--C
[3]=28,[33]=28,--I2
[1]=29,--O1
[102]=1,[1121]=1,-- Z
[195]=2,[610]=2,-- S
[39]=3,[1569]=3,[228]=3,[1091]=3,-- J
[135]=4,[547]=4,[225]=4,[1602]=4,-- L
[71]=5,[609]=5,[226]=5,[1122]=5,-- T
[99]=6,-- O
[15]=7,[4641]=7,-- I
[1606]=8,[2273]=8,-- Z5
[3139]=9,[740]=9,-- S5
[103]=10,[1633]=10,[230]=10,[1123]=10,-- P
[199]=11,[611]=11,[227]=11,[1634]=11,-- Q
[738]=12,[3170]=12,[1252]=12,[1219]=12,-- F
[2274]=13,[1126]=13,[1249]=13,[1730]=13,-- E
[1095]=14,[737]=14,[3650]=14,[2276]=14,-- T5
[167]=15,[1571]=15,[229]=15,[1603]=15,-- U
[2183]=16,[551]=16,[3617]=16,[3716]=16,-- V
[614]=17,[3169]=17,[1732]=17,[2243]=17,-- W
[1250]=18,-- X
[47]=19,[12833]=19,[488]=19,[9283]=19,-- J5
[271]=20,[4643]=20,[481]=20,[13378]=20,-- L5
[79]=21,[5665]=21,[484]=21,[9314]=21,-- R
[143]=22,[4705]=22,[482]=22,[9794]=22,-- Y
[110]=23,[9761]=23,[236]=23,[9313]=23,-- N
[391]=24,[4706]=24,[451]=24,[5698]=24,-- H
[31]=25,[21025]=25,-- I5
[7]=26,[545]=26,-- I3
[67]=27,[35]=27,[97]=27,[98]=27,-- C
[3]=28,[33]=28,-- I2
[1]=29,-- O1
}
local function _pTouch(x,y)
if not curPen then return end
@@ -78,7 +78,7 @@ local function _pDraw()
local l=#penPath
if l==0 then return end
local C--Color
local C-- Color
if penMode==0 then
if pens[curPen]==-2 then
if l<=5 then
@@ -227,7 +227,7 @@ function scene.keyDown(key)
MES.new('check',text.exportSuccess)
elseif key=='v' and kb.isDown('lctrl','rctrl') or key=='cV' then
local str=sys.getClipboardText()
local p=str:find(":")--ptr*
local p=str:find(":")-- ptr*
if p then
if not str:sub(1,p-1):find("Field") then
MES.new('error',text.pasteWrongPlace)
@@ -264,13 +264,13 @@ end
function scene.draw()
gc.translate(200,60)
--Draw grid
-- Draw grid
gc.setColor(1,1,1,.2)
gc.setLineWidth(1)
for x=1,9 do gc.line(30*x,0,30*x,600) end
for y=0,19 do gc.line(0,30*y,300,30*y) end
--Draw field
-- Draw field
gc.setColor(COLOR.Z)
gc.setLineWidth(2)
gc.rectangle('line',-2,-2,304,604,5)
@@ -287,7 +287,7 @@ function scene.draw()
end
end end
--Draw pen
-- Draw pen
if penX and penY then
local x,y=30*penX,600-30*penY
if curPen==1 or curPen==2 then
@@ -305,7 +305,7 @@ function scene.draw()
gc.rectangle('fill',x-30,y,30,30,3)
end
--Draw smart pen path
-- Draw smart pen path
if #penPath>0 then
gc.setLineWidth(4)
if penMode==0 then
@@ -344,23 +344,23 @@ function scene.draw()
end
gc.translate(-200,-60)
--Draw page
-- Draw page
setFont(55)
gc.setColor(COLOR.Z)
GC.mStr(page,100,530)
GC.mStr(#FIELD,100,600)
gc.rectangle('fill',50,600,100,6)
--Draw mouse & pen color
-- Draw mouse & pen color
gc.translate(560,475)
--Mouse
-- Mouse
gc.setLineWidth(2)
gc.rectangle('line',0,0,80,110,5)
gc.line(0,40,80,40)
gc.line(33,0,33,25,47,25,47,0)
gc.line(40,25,40,40)
--Left button
-- Left button
if pens[1]>0 then
gc.setColor(BLOCK_COLORS[pens[1]])
gc.rectangle('fill',5,5,23,30,3)
@@ -381,7 +381,7 @@ function scene.draw()
end
end
--Right button
-- Right button
if pens[2]>0 then
gc.setColor(BLOCK_COLORS[pens[2]])
gc.rectangle('fill',52,5,23,30,3)
@@ -403,7 +403,7 @@ function scene.draw()
end
end
--Middle button
-- Middle button
if pens[3]>0 then
gc.setColor(BLOCK_COLORS[pens[3]])
gc.rectangle('fill',35,2,10,21,3)
@@ -426,7 +426,7 @@ function scene.draw()
end
gc.translate(-560,-475)
--Block name
-- Block name
setFont(55)
gc.setColor(1,1,1)
for i=1,7 do
@@ -440,32 +440,32 @@ scene.widgetList={
WIDGET.newText{name='title', x=1020,y=5,lim=480,font=70,align='R'},
WIDGET.newText{name='subTitle', x=1030,y=50,lim=170,font=35,align='L',color='H'},
WIDGET.newButton{name='b1', x=580, y=130,w=73,fText="",color='R',code=_setPen(1)},--B1
WIDGET.newButton{name='b2', x=660, y=130,w=73,fText="",color='F',code=_setPen(2)},--B2
WIDGET.newButton{name='b3', x=740, y=130,w=73,fText="",color='O',code=_setPen(3)},--B3
WIDGET.newButton{name='b4', x=820, y=130,w=73,fText="",color='Y',code=_setPen(4)},--B4
WIDGET.newButton{name='b5', x=900, y=130,w=73,fText="",color='L',code=_setPen(5)},--B5
WIDGET.newButton{name='b6', x=980, y=130,w=73,fText="",color='J',code=_setPen(6)},--B6
WIDGET.newButton{name='b7', x=1060,y=130,w=73,fText="",color='G',code=_setPen(7)},--B7
WIDGET.newButton{name='b8', x=1140,y=130,w=73,fText="",color='A',code=_setPen(8)},--B8
WIDGET.newButton{name='b1', x=580, y=130,w=73,fText="",color='R',code=_setPen(1)},-- B1
WIDGET.newButton{name='b2', x=660, y=130,w=73,fText="",color='F',code=_setPen(2)},-- B2
WIDGET.newButton{name='b3', x=740, y=130,w=73,fText="",color='O',code=_setPen(3)},-- B3
WIDGET.newButton{name='b4', x=820, y=130,w=73,fText="",color='Y',code=_setPen(4)},-- B4
WIDGET.newButton{name='b5', x=900, y=130,w=73,fText="",color='L',code=_setPen(5)},-- B5
WIDGET.newButton{name='b6', x=980, y=130,w=73,fText="",color='J',code=_setPen(6)},-- B6
WIDGET.newButton{name='b7', x=1060,y=130,w=73,fText="",color='G',code=_setPen(7)},-- B7
WIDGET.newButton{name='b8', x=1140,y=130,w=73,fText="",color='A',code=_setPen(8)},-- B8
WIDGET.newButton{name='b9', x=580, y=210,w=73,fText="",color='C',code=_setPen(9)},--B9
WIDGET.newButton{name='b10', x=660, y=210,w=73,fText="",color='N',code=_setPen(10)},--B10
WIDGET.newButton{name='b11', x=740, y=210,w=73,fText="",color='S',code=_setPen(11)},--B11
WIDGET.newButton{name='b12', x=820, y=210,w=73,fText="",color='B',code=_setPen(12)},--B12
WIDGET.newButton{name='b13', x=900, y=210,w=73,fText="",color='V',code=_setPen(13)},--B13
WIDGET.newButton{name='b14', x=980, y=210,w=73,fText="",color='P',code=_setPen(14)},--B14
WIDGET.newButton{name='b15', x=1060,y=210,w=73,fText="",color='M',code=_setPen(15)},--B15
WIDGET.newButton{name='b16', x=1140,y=210,w=73,fText="",color='W',code=_setPen(16)},--B16
WIDGET.newButton{name='b9', x=580, y=210,w=73,fText="",color='C',code=_setPen(9)},-- B9
WIDGET.newButton{name='b10', x=660, y=210,w=73,fText="",color='N',code=_setPen(10)},-- B10
WIDGET.newButton{name='b11', x=740, y=210,w=73,fText="",color='S',code=_setPen(11)},-- B11
WIDGET.newButton{name='b12', x=820, y=210,w=73,fText="",color='B',code=_setPen(12)},-- B12
WIDGET.newButton{name='b13', x=900, y=210,w=73,fText="",color='V',code=_setPen(13)},-- B13
WIDGET.newButton{name='b14', x=980, y=210,w=73,fText="",color='P',code=_setPen(14)},-- B14
WIDGET.newButton{name='b15', x=1060,y=210,w=73,fText="",color='M',code=_setPen(15)},-- B15
WIDGET.newButton{name='b16', x=1140,y=210,w=73,fText="",color='W',code=_setPen(16)},-- B16
WIDGET.newButton{name='b17', x=580, y=290,w=73,font=40,fText=CHAR.icon.bone, color='dH',code=_setPen(17)},--BONE
WIDGET.newButton{name='b18', x=660, y=290,w=73,font=40,fText=CHAR.icon.invis, color='D', code=_setPen(18)},--HIDE
WIDGET.newButton{name='b19', x=740, y=290,w=73,font=40,fText=CHAR.icon.bomb, color='lY',code=_setPen(19)},--BOMB
WIDGET.newButton{name='b20', x=820, y=290,w=73,font=40,fText=CHAR.icon.garbage,color='H', code=_setPen(20)},--GB1
WIDGET.newButton{name='b21', x=900, y=290,w=73,font=40,fText=CHAR.icon.garbage,color='lH',code=_setPen(21)},--GB2
WIDGET.newButton{name='b22', x=980, y=290,w=73,font=40,fText=CHAR.icon.garbage,color='dV',code=_setPen(22)},--GB3
WIDGET.newButton{name='b23', x=1060,y=290,w=73,font=40,fText=CHAR.icon.garbage,color='dR',code=_setPen(23)},--GB4
WIDGET.newButton{name='b24', x=1140,y=290,w=73,font=40,fText=CHAR.icon.garbage,color='dG',code=_setPen(24)},--GB5
WIDGET.newButton{name='b17', x=580, y=290,w=73,font=40,fText=CHAR.icon.bone, color='dH',code=_setPen(17)},-- BONE
WIDGET.newButton{name='b18', x=660, y=290,w=73,font=40,fText=CHAR.icon.invis, color='D', code=_setPen(18)},-- HIDE
WIDGET.newButton{name='b19', x=740, y=290,w=73,font=40,fText=CHAR.icon.bomb, color='lY',code=_setPen(19)},-- BOMB
WIDGET.newButton{name='b20', x=820, y=290,w=73,font=40,fText=CHAR.icon.garbage,color='H', code=_setPen(20)},-- GB1
WIDGET.newButton{name='b21', x=900, y=290,w=73,font=40,fText=CHAR.icon.garbage,color='lH',code=_setPen(21)},-- GB2
WIDGET.newButton{name='b22', x=980, y=290,w=73,font=40,fText=CHAR.icon.garbage,color='dV',code=_setPen(22)},-- GB3
WIDGET.newButton{name='b23', x=1060,y=290,w=73,font=40,fText=CHAR.icon.garbage,color='dR',code=_setPen(23)},-- GB4
WIDGET.newButton{name='b24', x=1140,y=290,w=73,font=40,fText=CHAR.icon.garbage,color='dG',code=_setPen(24)},-- GB5
WIDGET.newButton{name='any', x=600, y=400,w=120,color='lH', font=40,code=_setPen(0)},
WIDGET.newButton{name='space', x=730, y=400,w=120,color='H', font=55,code=_setPen(-1),fText=CHAR.icon.cross_thick},

View File

@@ -6,8 +6,8 @@ local ins,rem=table.insert,table.remove
local scene={}
local input--Input buffer
local cur--Cursor position
local input-- Input buffer
local cur-- Cursor position
function scene.sceneInit()
input=""
@@ -72,7 +72,7 @@ function scene.keyDown(key)
end
elseif key=='v' and kb.isDown('lctrl','rctrl') or key=='cV' then
local str=sys.getClipboardText()
local p=str:find(":")--ptr*
local p=str:find(":")-- ptr*
if p then
if not str:sub(1,p-1):find("Target") then
MES.new('error',text.pasteWrongPlace)
@@ -112,22 +112,22 @@ function scene.keyDown(key)
end
function scene.draw()
--Draw frame
-- Draw frame
gc.setLineWidth(2)
gc.setColor(COLOR.Z)
gc.rectangle('line',58,108,1164,174,5)
--Draw inputing target
-- Draw inputing target
setFont(30)
gc.setColor(.9,.9,.9)
gc.print(input,1200,275)
--Draw targets
-- Draw targets
local libColor=BLOCK_COLORS
local set=SETTING.skin
local L=MISSION
local x,y=100,136--Next block pos
local cx,cy=100,136--Cursor-center pos
local x,y=100,136-- Next block pos
local cx,cy=100,136-- Cursor-center pos
local i,j=1,#L
local count=1
repeat
@@ -169,7 +169,7 @@ function scene.draw()
i=i+1
until i>j+1
--Draw cursor
-- Draw cursor
gc.setColor(1,1,.4,.6+.4*sin(TIME()*6.26))
gc.line(cx-5,cy-20,cx-5,cy+20)
end

View File

@@ -7,7 +7,7 @@ local gc_setColor,gc_print=gc.setColor,gc.print
local scene={}
local cur--Cursor position
local cur-- Cursor position
function scene.sceneInit()
cur=#BAG
@@ -80,7 +80,7 @@ function scene.keyDown(key)
end
elseif key=='v' and kb.isDown('lctrl','rctrl') or key=='cV' then
local str=sys.getClipboardText()
local p=str:find(":")--ptr*
local p=str:find(":")-- ptr*
if p then
if not str:sub(1,p-1):find("SEQ") then
MES.new('error',text.pasteWrongPlace)
@@ -114,17 +114,17 @@ end
local blockCharWidth={} for i=1,#BLOCK_CHARS do blockCharWidth[i]=gc.newText(FONT.get(60),BLOCK_CHARS[i]):getWidth() end
function scene.draw()
--Draw frame
-- Draw frame
gc_setColor(COLOR.Z)
gc.setLineWidth(2)
gc.rectangle('line',100,110,1080,260,5)
--Draw sequence
-- Draw sequence
local BLOCK_COLORS=BLOCK_COLORS
local skinSetting=SETTING.skin
local BAG=BAG
local x,y=120,136--Next block pos
local cx,cy=120,136--Cursor-center pos
local x,y=120,136-- Next block pos
local cx,cy=120,136-- Cursor-center pos
local i,j=1,#BAG
local count=1
repeat
@@ -159,12 +159,12 @@ function scene.draw()
i=i+1
until i>j+1
--Draw lenth
-- Draw lenth
setFont(40)
gc_setColor(COLOR.Z)
gc_print(#BAG,120,310)
--Draw cursor
-- Draw cursor
gc_setColor(.5,1,.5,.6+.4*sin(TIME()*6.26))
gc.line(cx-5,cy-20,cx-5,cy+20)
end

View File

@@ -30,16 +30,16 @@ function scene.update(dt)
end
function scene.draw()
--Game scene
-- Game scene
SCN.scenes.game.draw()
--Gray screen cover
-- Gray screen cover
gc.setColor(.12,.12,.12,timer*8-7)
gc.replaceTransform(SCR.origin)
gc.rectangle('fill',0,0,SCR.w,SCR.h)
gc.replaceTransform(SCR.xOy)
--Counter bar
-- Counter bar
gc.setLineWidth(2)
gc.setColor(.9,.9,.9,math.min(1,12*timer,8*(1-timer))*.6)
gc.rectangle('line',494,336,292,48,14)

View File

@@ -8,15 +8,15 @@ local find=string.find
local scene={}
local dict--Dict list
local result--Result Lable
local dict-- Dict list
local result-- Result Lable
local lastTickInput
local searchWait--Searching animation timer
local selected--Selected option
local scrollPos--Scroll down length
local searchWait-- Searching animation timer
local selected-- Selected option
local scrollPos-- Scroll down length
local lastSearch--Last searched string
local lastSearch-- Last searched string
local typeColor={
help=COLOR.Y,

View File

@@ -130,7 +130,7 @@ local function _checkGameKeyDown(key)
return
end
end
return true--No key pressed
return true-- No key pressed
end
function scene.sceneInit()
@@ -283,19 +283,19 @@ function scene.gamepadUp(key)
end
local function _update_common(dt)
--Update control
-- Update control
touchMoveLastFrame=false
VK.update(dt)
--Update players
-- Update players
for p=1,#PLAYERS do PLAYERS[p]:update(dt) end
--Fresh royale target
-- Fresh royale target
if PLAYERS[1].frameRun%120==0 and PLAYERS[1].gameEnv.layout=='royale' then
freshMostDangerous()
end
--Warning check
-- Warning check
checkWarning(dt)
end
function scene.update(dt)
@@ -328,15 +328,15 @@ function scene.draw()
local repMode=GAME.replaying or tas
--Players
-- Players
for p=1,#PLAYERS do
PLAYERS[p]:draw(repMode)
end
--Virtual keys
-- Virtual keys
VK.draw()
--Attacking & Being attacked
-- Attacking & Being attacked
if PLAYERS[1].gameEnv.layout=='royale' then
local P=PLAYERS[1]
gc_setLineWidth(5)
@@ -357,7 +357,7 @@ function scene.draw()
end
end
--Mode info
-- Mode info
gc_setColor(1,1,1,.82)
gc_draw(TEXTOBJ.modeName,modeTextPos,10,0,modeTextWidK,1)
local M=GAME.curMode
@@ -378,7 +378,7 @@ function scene.draw()
end
end
--Replaying
-- Replaying
if replaying or tas then
setFont(20)
gc_setColor(1,1,TIME()%.8>.4 and 1 or 0)
@@ -387,7 +387,7 @@ function scene.draw()
mStr(("%s %sf"):format(repRateStrings[gameRate],PLAYERS[1].frameRun),770,31)
end
--Warning
-- Warning
drawWarning()
end
scene.widgetList={

View File

@@ -138,7 +138,7 @@ pad={x=140,y=65,page=1,
{{},{},{},{},{},{},{},{}},
{{},{},{},{},{},{},{},{}},
},
(function()--BGM page
(function()-- BGM page
local L=BGM.getList()
local B={}
for y=1,8 do
@@ -233,13 +233,13 @@ function scene.draw()
gc_translate(pad.x,pad.y)
gc_setLineWidth(2)
--Pad frame
-- Pad frame
gc_setColor(COLOR.dX)
gc_rectangle('fill',-3,-3,726,646,2)
gc_setColor(white)
gc_rectangle('line',-3,-3,726,646,2)
--Buttons
-- Buttons
for y=1,8 do
gc_setColor(COLOR.dX)
gc_circle('fill',40,(y-1)*80+40,34)

View File

@@ -5,7 +5,7 @@ local scene={}
local loading
local progress,maxProgress
local t1,t2,animeType
local studioLogo--Studio logo text object
local studioLogo-- Studio logo text object
local logoColor1,logoColor2
local titleTransform={
@@ -28,9 +28,9 @@ local loadingThread=coroutine.wrap(function()
end
coroutine.yield()
coroutine.yield('loadSFX')SFX.load('media/effect/'..SETTING.sfxPack..'/')
coroutine.yield('loadSample')SFX.loadSample{name='bass',path='media/sample/bass',base='A2'}--A2~A4
coroutine.yield('loadSample')SFX.loadSample{name='lead',path='media/sample/lead',base='A3'}--A3~A5
coroutine.yield('loadSample')SFX.loadSample{name='bell',path='media/sample/bell',base='A4'}--A4~A6
coroutine.yield('loadSample')SFX.loadSample{name='bass',path='media/sample/bass',base='A2'}-- A2~A4
coroutine.yield('loadSample')SFX.loadSample{name='lead',path='media/sample/lead',base='A3'}-- A3~A5
coroutine.yield('loadSample')SFX.loadSample{name='bell',path='media/sample/bell',base='A4'}-- A4~A6
coroutine.yield('loadVoice')VOC.load('media/vocal/'..SETTING.vocPack..'/')
coroutine.yield('loadFont') for i=1,17 do getFont(15+5*i)getFont(15+5*i,'mono') end
@@ -114,8 +114,8 @@ function scene.sceneInit()
studioLogo=GC.newText(getFont(90),"26F Studio")
progress=0
maxProgress=10
t1,t2=0,0--Timer
animeType={} for i=1,#SVG_TITLE_FILL do animeType[i]=math.random(#titleTransform) end--Random animation type
t1,t2=0,0-- Timer
animeType={} for i=1,#SVG_TITLE_FILL do animeType[i]=math.random(#titleTransform) end-- Random animation type
end
function scene.sceneBack()
love.event.quit()

View File

@@ -3,7 +3,7 @@ local scene={}
local verName=("%s %s %s"):format(SYSTEM,VERSION.string,VERSION.name)
local tipLength=760
local tip=GC.newText(getFont(30),"")
local scrollX--Tip scroll position
local scrollX-- Tip scroll position
local widgetX0={
-10,-10,-10,-10,
@@ -20,14 +20,14 @@ end)
function scene.sceneInit()
BG.set()
--Set tip
-- Set tip
tip:set(text.getTip())
scrollX=tipLength
--Set quick-play-button text
-- Set quick-play-button text
scene.resize()
--Create demo player
-- Create demo player
destroyPlayers()
GAME.modeEnv=NONE
GAME.setting={}
@@ -133,16 +133,16 @@ local function _tipStencil()
GC.rectangle('fill',0,0,tipLength,42)
end
function scene.draw()
--Version
-- Version
setFont(20)
GC.setColor(.6,.6,.6)
GC.mStr(verName,640,110)
--Title
-- Title
GC.setColor(1,1,1)
mDraw(TEXTURE.title_color,640,60,nil,.43)
--Tip
-- Tip
GC.setColor(COLOR.Z)
GC.push('transform')
GC.translate(260,650)
@@ -155,13 +155,13 @@ function scene.draw()
GC.setStencilTest()
GC.pop()
--Player
-- Player
PLAYERS[1]:draw()
--Profile
-- Profile
drawSelfProfile()
--Player count
-- Player count
drawOnlinePlayerCount()
end

View File

@@ -1,6 +1,6 @@
local scene={}
local selected--Mod selected
local selected-- Mod selected
local function _modComp(a,b)
return a.no<b.no
@@ -109,7 +109,7 @@ function scene.draw()
for _,M in next,MODOPT do
GC.push('transform')
GC.translate(M.x,M.y)
local t=M.time*.01--t range:0~0.1
local t=M.time*.01-- t range:0~0.1
GC.scale(1+3*t)
GC.rotate(t)
local rad,side

View File

@@ -11,11 +11,11 @@ local max,min=math.max,math.min
local int,abs=math.floor,math.abs
local mapCam={
sel=false,--Selected mode ID
xOy=love.math.newTransform(0,0,0,1),--Transformation for map display
keyCtrl=false,--If controlling with key
sel=false,-- Selected mode ID
xOy=love.math.newTransform(0,0,0,1),-- Transformation for map display
keyCtrl=false,-- If controlling with key
--For auto zooming when enter/leave scene
-- For auto zooming when enter/leave scene
zoomMethod=false,
zoomK=false,
}
@@ -27,7 +27,7 @@ local scene={}
function scene.sceneInit()
BG.set()
mapCam.zoomK=SCN.prev=='main' and 5 or 1
visibleModes={}--1=unlocked, 2=locked but visible
visibleModes={}-- 1=unlocked, 2=locked but visible
for name,M in next,MODES do
if RANKS[name] and M.x then
visibleModes[name]=1
@@ -113,7 +113,7 @@ function scene.touchMove(x,y,dx,dy)
_moveMap(dx,dy)
elseif not L[3] then
x,y=SCR.xOy:inverseTransformPoint(tc.getPosition(L[1]))
dx,dy=SCR.xOy:inverseTransformPoint(tc.getPosition(L[2]))--Not delta!!!
dx,dy=SCR.xOy:inverseTransformPoint(tc.getPosition(L[2]))-- Not delta!!!
local d=(x-dx)^2+(y-dy)^2
if d>100 then
d=d^.5
@@ -197,7 +197,7 @@ function scene.update()
end
end
--noRank/B/A/S/U/X
-- noRank/B/A/S/U/X
local baseRankColor={
[0]={0,0,0,.3},
{.2,.4,.6,.3},
@@ -207,11 +207,11 @@ local baseRankColor={
{.85,.3,.8,.3},
}
local function _drawModeShape(M,S,drawType)
if M.shape==1 then--Rectangle
if M.shape==1 then-- Rectangle
gc_rectangle(drawType,M.x-S,M.y-S,2*S,2*S)
elseif M.shape==2 then--Diamond
elseif M.shape==2 then-- Diamond
gc_circle(drawType,M.x,M.y,S+12,4)
elseif M.shape==3 then--Octagon
elseif M.shape==3 then-- Octagon
gc_circle(drawType,M.x,M.y,S+6,8)
end
end
@@ -226,7 +226,7 @@ function scene.draw()
local R=RANKS
local sel=mapCam.sel
--Lines connecting modes
-- Lines connecting modes
gc_setLineWidth(8)
gc_setColor(1,1,1,.2)
for name,M in next,MODES do
@@ -238,7 +238,7 @@ function scene.draw()
end
end
--Modes
-- Modes
setFont(80)
gc_setLineWidth(4)
for name,M in next,MODES do
@@ -247,7 +247,7 @@ function scene.draw()
local rank=R[name]
local S=M.size
--Draw shapes on map
-- Draw shapes on map
if unlocked==1 then
gc_setColor(baseRankColor[rank])
_drawModeShape(M,S,'fill')
@@ -255,7 +255,7 @@ function scene.draw()
gc_setColor(1,1,sel==name and 0 or 1,unlocked==1 and .8 or .3)
_drawModeShape(M,S,'line')
--Icon
-- Icon
local icon=M.icon
if icon then
gc_setColor(unlocked==1 and COLOR.lH or COLOR.dH)
@@ -263,7 +263,7 @@ function scene.draw()
gc_draw(icon,M.x,M.y,nil,S/length,nil,length,length)
end
--Rank
-- Rank
if unlocked==1 then
name=RANK_CHARS[rank]
if name then
@@ -277,11 +277,11 @@ function scene.draw()
end
gc_pop()
--Score board
-- Score board
if sel then
local M=MODES[sel]
gc_setColor(COLOR.lX)
gc_rectangle('fill',920,0,360,720,5)--Info board
gc_rectangle('fill',920,0,360,720,5)-- Info board
gc_setColor(COLOR.Z)
setFont(40)GC.mStr(text.modes[sel][1],1100,5)
setFont(30)GC.mStr(text.modes[sel][2],1100,50)
@@ -292,7 +292,7 @@ function scene.draw()
if M.score then
mText(TEXTOBJ.highScore,1100,240)
gc_setColor(COLOR.X)
gc_rectangle('fill',940,290,320,280,5)--Highscore board
gc_rectangle('fill',940,290,320,280,5)-- Highscore board
local L=M.records
gc_setColor(1,1,1)
if visibleModes[sel]==2 then

View File

@@ -18,7 +18,7 @@ local author={
local scene={}
local playing
local selected--Music selected
local selected-- Music selected
local bgmList=BGM.getList()
if #bgmList==0 then bgmList={"[NO BGM]"} end
@@ -69,7 +69,7 @@ end
function scene.draw()
local t=TIME()
--Character
-- Character
GC.push('transform')
GC.setColor(1,1,1)
GC.translate(906,456)
@@ -85,7 +85,7 @@ function scene.draw()
GC.setColor(COLOR.Z)
--Scroller
-- Scroller
GC.setLineWidth(2)
GC.line(315,307,315,482)
setFont(50)
@@ -97,7 +97,7 @@ function scene.draw()
if selected>2 then GC.print(bgmList[selected-2],322,350-50) end
if selected<#bgmList-1 then GC.print(bgmList[selected+2],322,350+110) end
--Title
-- Title
if playing then
mDraw(TEXTURE.title,570,190,nil,.42)
local a=-t%2.3/2.3
@@ -105,7 +105,7 @@ function scene.draw()
mDraw(TEXTURE.title_color,570,190,nil,.42+.062-.062*a)
end
--Music player
-- Music player
if playing then
setFont(45)
GC.shadedPrint(playing,710,508,'left',2)

View File

@@ -249,13 +249,13 @@ function scene.update(dt)
touchMoveLastFrame=false
VK.update(dt)
--Update players
-- Update players
for p=1,#PLAYERS do PLAYERS[p]:update(dt) end
--Warning check
-- Warning check
checkWarning(dt)
--Upload stream
-- Upload stream
if not NET.spectate and P1.frameRun-lastUpstreamTime>8 then
local stream
if not GAME.rep[upstreamProgress] then
@@ -281,15 +281,15 @@ end
function scene.draw()
if playing then
--Players
-- Players
for p=1,#PLAYERS do
PLAYERS[p]:draw()
end
--Virtual keys
-- Virtual keys
VK.draw()
--Warning
-- Warning
drawWarning()
if NET.spectate then
@@ -298,10 +298,10 @@ function scene.draw()
gc_print(text.spectating,940,0)
end
else
--Users
-- Users
NETPLY.draw()
--Ready & Set mark
-- Ready & Set mark
setFont(50)
if NET.roomReadyState=='allReady' then
gc_setColor(1,.85,.6,.9)
@@ -314,7 +314,7 @@ function scene.draw()
mStr(text.waitStream,640,15)
end
--Room info.
-- Room info.
gc_setColor(1,1,1)
setFont(25)
gc_printf(NET.roomState.info.name,0,685,1270,'right')
@@ -327,14 +327,14 @@ function scene.draw()
gc_setColor(0,1,0)gc_print(text.started,230,655)
end
--Profile
-- Profile
drawSelfProfile()
--Player count
-- Player count
drawOnlinePlayerCount()
end
--New message
-- New message
if newMessageTimer>0 then
setFont(40)
gc_setColor(.3,.7,1,(newMessageTimer/60)^2)

View File

@@ -59,7 +59,7 @@ scene.widgetScrollHeight=400
scene.widgetList={
WIDGET.newText{name='title',x=40,y=15,font=70,align='L'},
--Room name/password/description
-- Room name/password/description
roomName,
roomNameBox,
password,
@@ -67,7 +67,7 @@ scene.widgetList={
description,
descriptionBox,
--Selectors
-- Selectors
WIDGET.newSelector{name='life', x=170,y=410,w=260,color='R',list=sList.life, disp=ROOMval('life'), code=ROOMsto('life')},
WIDGET.newSelector{name='pushSpeed', x=170,y=520,w=260,color='V',list=sList.pushSpeed, disp=ROOMval('pushSpeed'), code=ROOMsto('pushSpeed')},
WIDGET.newSelector{name='garbageSpeed', x=170,y=600,w=260,color='V',list=sList.pushSpeed, disp=ROOMval('garbageSpeed'), code=ROOMsto('garbageSpeed')},
@@ -85,12 +85,12 @@ scene.widgetList={
WIDGET.newSelector{name='hurry', x=730,y=680,w=260,color='G',list=sList.hurry,disp=ROOMval('hurry'),code=ROOMval('hurry')},
WIDGET.newSelector{name='hang', x=730,y=760,w=260,color='G',list=sList.hang,disp=ROOMval('hang'),code=ROOMval('hang')},
--Capacity & Create & Back
-- Capacity & Create & Back
WIDGET.newSelector{name='capacity', x=1070,y=330,w=310,color='lY',list={2,3,4,5,7,10,17,31,49,99},disp=ROOMval('capacity'),code=ROOMsto('capacity')},
WIDGET.newButton{name='create', x=1070,y=480,w=310,h=140,color='lN',font=40,code=_createRoom},
WIDGET.newButton{name='back', x=1140,y=640,w=170,h=80,sound='back',font=60,fText=CHAR.icon.back,code=backScene},
--Special rules
-- Special rules
WIDGET.newSwitch{name='ospin', x=850, y=850, lim=210,disp=ROOMval('ospin'), code=ROOMrev('ospin')},
WIDGET.newSwitch{name='fineKill', x=850, y=910, lim=210,disp=ROOMval('fineKill'), code=ROOMrev('fineKill')},
WIDGET.newSwitch{name='b2bKill', x=850, y=970, lim=210,disp=ROOMval('b2bKill'), code=ROOMrev('b2bKill')},
@@ -99,10 +99,10 @@ scene.widgetList={
WIDGET.newSwitch{name='deepDrop', x=1170,y=910, lim=250,disp=ROOMval('deepDrop'), code=ROOMrev('deepDrop')},
WIDGET.newSwitch{name='bone', x=1170,y=970, lim=250,disp=ROOMval('bone'), code=ROOMrev('bone')},
--Rule set
-- Rule set
WIDGET.newSelector{name='eventSet', x=1050,y=760,w=340,color='H',list=sList.eventSet,disp=ROOMval('eventSet'),code=ROOMval('eventSet')},
--Next & Hold
-- Next & Hold
WIDGET.newSelector{name='holdMode', x=310, y=890, w=300,color='lY',list=sList.holdMode,disp=ROOMval('holdMode'),code=ROOMval('holdMode'),hideF=function() return CUSTOMENV.holdCount==0 end},
WIDGET.newSlider{name='nextCount', x=140, y=960, lim=130,w=200,axis={0,6,1},disp=ROOMval('nextCount'),code=ROOMsto('nextCount')},
WIDGET.newSlider{name='holdCount', x=140, y=1030,lim=130,w=200,axis={0,6,1},disp=ROOMval('holdCount'),code=ROOMsto('holdCount')},

View File

@@ -105,11 +105,11 @@ function scene.update(dt)
end
function scene.draw()
--Fetching timer
-- Fetching timer
gc_setColor(1,1,1,.12)
gc_arc('fill','pie',250,630,40,-1.5708,-1.5708-.6283*fetchTimer)
--Room list
-- Room list
local R=roomList:getSel()
if R then
gc_translate(870,220)
@@ -132,10 +132,10 @@ function scene.draw()
gc_translate(-870,-220)
end
--Profile
-- Profile
drawSelfProfile()
--Player count
-- Player count
drawOnlinePlayerCount()
end

View File

@@ -7,15 +7,15 @@ local setFont,mStr=FONT.set,GC.mStr
local scene={}
local page
local timer1,timer2--Animation timer
local form--Form of clear & spins
local radar--Radar chart
local val--Radar chart normalizer
local standard--Standard hexagon
local chartColor--Color of radar chart
local rank--Current rank
local trophy--Current trophy
local trophyColor--Current trophy color
local timer1,timer2-- Animation timer
local form-- Form of clear & spins
local radar-- Radar chart
local val-- Radar chart normalizer
local standard-- Standard hexagon
local chartColor-- Color of radar chart
local rank-- Current rank
local trophy-- Current trophy
local trophyColor-- Current trophy color
function scene.sceneInit()
page=0
@@ -41,18 +41,18 @@ function scene.sceneInit()
("%d/%d ; %d/%d"):format(S.b2b,S.b3b,S.pc,S.hpc),
("%d/%dx/%.2f%%"):format(S.extraPiece,S.maxFinesseCombo,S.finesseRate*20/S.piece),
}
--From right-down, 60 degree each
-- From right-down, 60 degree each
radar={
(S.off+S.dig)/S.time*60,--DefPM
(S.atk+S.dig)/S.time*60,--ADPM
S.atk/S.time*60, --AtkPM
S.send/S.time*60, --SendPM
S.piece/S.time*24, --Line'PM
S.dig/S.time*60, --DigPM
(S.off+S.dig)/S.time*60,-- DefPM
(S.atk+S.dig)/S.time*60,-- ADPM
S.atk/S.time*60, -- AtkPM
S.send/S.time*60, -- SendPM
S.piece/S.time*24, -- Line'PM
S.dig/S.time*60, -- DigPM
}
val={1/80,1/160,1/120,1/80,1/100,1/40}
--Normalize Values
-- Normalize Values
for i=1,6 do
val[i]=val[i]*radar[i] if val[i]>1.26 then val[i]=1.26+log(val[i]-.26) end
end
@@ -70,9 +70,9 @@ function scene.sceneInit()
break
end
end
if f==1 then chartColor,f={.4,.9,.5},1.25--Vegetable
elseif f==2 then chartColor,f={.4,.7,.9},1 --Normal
elseif f==3 then chartColor,f={1,.3,.3},.626 --Diao
if f==1 then chartColor,f={.4,.9,.5},1.25-- Vegetable
elseif f==2 then chartColor,f={.4,.7,.9},1 -- Normal
elseif f==3 then chartColor,f={1,.3,.3},.626 -- Diao
end
standard={
120*.5*f, 120*3^.5*.5*f,
@@ -187,7 +187,7 @@ function scene.draw()
SCN.scenes.game.draw()
end
--Dark BG
-- Dark BG
local _=timer1
if GAME.result then _=_*.76 end
gc.setColor(.12,.12,.12,_)
@@ -197,13 +197,13 @@ function scene.draw()
gc.setColor(.97,.97,.97,timer1)
--Result Text
-- Result Text
mDraw(GAME.result and TEXTOBJ[GAME.result] or TEXTOBJ.pause,640,70-10*(5-timer1*5)^1.5)
--Mode Info (outside)
-- Mode Info (outside)
gc.draw(TEXTOBJ.modeName,745-TEXTOBJ.modeName:getWidth(),143)
--Level rank
-- Level rank
if RANK_CHARS[GAME.rank] then
gc.push('transform')
gc.translate(1050,5)
@@ -221,13 +221,13 @@ function scene.draw()
mDraw(tasText,870,395,.3,2.6)
end
--Big info frame
-- Big info frame
if PLAYERS[1].frameRun>=180 then
gc.push('transform')
gc.translate(560,205)
gc.setLineWidth(2)
--Pause Info (outside)
-- Pause Info (outside)
setFont(25)
if GAME.pauseCount>0 then
gc.setColor(.97,.97,.97,timer1*.06)
@@ -237,20 +237,20 @@ function scene.draw()
mStr(("%s:[%d] %.2fs"):format(text.pauseCount,GAME.pauseCount,GAME.pauseTime),305,389)
end
--Pages
-- Pages
if page==0 then
--Frame
-- Frame
gc.setColor(.97,.97,.97,timer2*.06)
gc.rectangle('fill',-5,-5,620,380,8)
gc.setColor(.97,.97,.97,timer2)
gc.rectangle('line',-5,-5,620,380,8)
--Game statistics
-- Game statistics
gc.push('transform')
gc.scale(.85)
gc.setLineWidth(2)
--Stats
-- Stats
_=form
setFont(30)
gc.setColor(.97,.97,.97,timer2)
@@ -259,7 +259,7 @@ function scene.draw()
gc.printf(_[i],210,43*(i-1)+2,500,'right')
end
--Finesse rank & trophy
-- Finesse rank & trophy
if rank then
setFont(40)
gc.setColor(.7,.7,.7,timer2)
@@ -272,12 +272,12 @@ function scene.draw()
end
gc.pop()
elseif page==1 then
--Radar Chart
-- Radar Chart
gc.setLineWidth(1)
gc.push('transform')
gc.translate(310,185)
--Polygon
-- Polygon
gc.push('transform')
gc.scale((3-2*timer2)*timer2)
gc.setColor(.97,.97,.97,timer2*(.5+.3*sin(TIME()*6.26)))
@@ -294,7 +294,7 @@ function scene.draw()
gc.line(val[11],val[12],val[1],val[2])
gc.pop()
--Texts
-- Texts
local C
_=TIME()%6.2832
if _>3.142 then
@@ -314,7 +314,7 @@ function scene.draw()
gc.pop()
end
--Mods
-- Mods
gc.push('transform')
gc.translate(131,600)
gc.scale(.65)

View File

@@ -8,7 +8,7 @@ local function _parseCB()
local _
local s=love.system.getClipboardText()
--Decode
-- Decode
s=STRING.unpackText(s)
if not s then MES.new('error',text.dataCorrupted)return end

View File

@@ -58,7 +58,7 @@ end
function scene.draw()
gc.translate(550,600)
--Testing grid line
-- Testing grid line
gc.setLineWidth(4)
gc.setColor(1,1,1,.4)
gc.line(0,0,400,0)
@@ -71,7 +71,7 @@ function scene.draw()
gc.line(0,-10,0,90)
gc.line(400,-10,400,90)
--O mino animation
-- O mino animation
gc.setColor(1,1,1)
local O=SKIN.lib[SETTING.skinSet][SETTING.skin[6]]
gc.draw(O,40*pos,0,nil,40/30)

View File

@@ -13,7 +13,7 @@ function scene.draw()
gc.push('transform')
gc.translate(410,540-WIDGET.scrollPos)
--Draw mino
-- Draw mino
local t=TIME()
local b=math.floor(t*2)%16+1
gc.setShader(SHADER.blockSatur)
@@ -23,7 +23,7 @@ function scene.draw()
mDraw(SKIN.lib[SETTING.skinSet][b%16+1],0,0,t%6.2832,2)
gc.setShader()
--Draw center
-- Draw center
gc.setColor(1,1,1)
mDraw(RSlist[SETTING.RS].centerTex,0,0,0,1.2)

View File

@@ -4,7 +4,7 @@ local mStr=GC.mStr
local scene={}
local selected--if waiting for key
local selected-- if waiting for key
local keyList
local keyNames={

View File

@@ -4,7 +4,7 @@ local sin=math.sin
local scene={}
local last1,last2--Last touch/sound time
local last1,last2-- Last touch/sound time
local sfxPack=SETTING.sfxPack
local vocPack=SETTING.vocPack

View File

@@ -6,7 +6,7 @@ local scene={}
local defaultSetSelect
local snapUnit=1
local selected--Button selected
local selected-- Button selected
local function _save1()
saveFile(VK_ORG,'conf/vkSave1')

View File

@@ -1,7 +1,7 @@
local scene={}
local form--Form of clear & spins
local item--Detail datas
local form-- Form of clear & spins
local item-- Detail datas
function scene.sceneInit()
BG.set()

View File

@@ -1,12 +1,12 @@
local scene={}
function scene.draw()
--QR Code frame
-- QR Code frame
GC.setLineWidth(2)
GC.rectangle('line',298,98,263,263)
GC.rectangle('line',718,318,250,250)
--Support text
-- Support text
GC.setColor(1,1,1,MATH.sin(TIME()*20)*.3+.6)
setFont(30)
GC.mStr(text.support,430+MATH.sin(TIME()*4)*20,363)