地图UI升级,增加模式图标

This commit is contained in:
MrZ626
2021-03-09 00:52:30 +08:00
parent d2e6fd2dcc
commit 0de1317d2f
32 changed files with 101 additions and 112 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
media/image/modeicon/gm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
media/image/modeicon/pc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -291,15 +291,6 @@ do--BLOCKS
end end
end end
rankColor={
COLOR.dRed, --D
COLOR.dOrange, --C
COLOR.lYellow, --B
COLOR.lBlue, --A
COLOR.lCyan, --S
COLOR.lGreen, --Special
}
minoColor={ minoColor={
COLOR.red, COLOR.red,
COLOR.fire, COLOR.fire,

View File

@@ -1,21 +1,21 @@
return{ return{
{name="sprint_10l", x=0, y=0, size=40,shape=1,icon="sprint", unlock={"sprint_20l","sprint_40l"}}, {name="sprint_10l", x=0, y=0, size=40,shape=1,icon="sprint1", unlock={"sprint_20l","sprint_40l"}},
{name="sprint_20l", x=-200, y=0, size=50,shape=1,icon="sprint"}, {name="sprint_20l", x=-200, y=0, size=50,shape=1,icon="sprint1"},
{name="sprint_40l", x=0, y=-300, size=40,shape=1,icon="sprint", unlock={"dig_10l","sprint_100l","marathon_n","sprintPenta","sprintMPH"}}, {name="sprint_40l", x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={"dig_10l","sprint_100l","marathon_n","sprintPenta","sprintMPH"}},
{name="sprint_100l", x=-200, y=-200, size=50,shape=1,icon="sprint", unlock={"sprint_400l","drought_n"}}, {name="sprint_100l", x=-200, y=-200, size=50,shape=1,icon="sprint2", unlock={"sprint_400l","drought_n"}},
{name="sprint_400l", x=-400, y=-200, size=40,shape=1,icon="sprint", unlock={"sprint_1000l"}}, {name="sprint_400l", x=-400, y=-200, size=40,shape=1,icon="sprint3", unlock={"sprint_1000l"}},
{name="sprint_1000l", x=-600, y=-200, size=40,shape=1,icon="sprint"}, {name="sprint_1000l", x=-600, y=-200, size=40,shape=1,icon="sprint3"},
{name="sprintPenta", x=210, y=-370, size=40,shape=3,icon="sprint"}, {name="sprintPenta", x=210, y=-370, size=40,shape=3,icon="tech"},
{name="sprintMPH", x=210, y=-230, size=40,shape=3,icon="sprint"}, {name="sprintMPH", x=210, y=-230, size=40,shape=3,icon="tech"},
{name="drought_n", x=-400, y=0, size=40,shape=1,icon="noI", unlock={"drought_l"}}, {name="drought_n", x=-400, y=0, size=40,shape=1,icon="drought", unlock={"drought_l"}},
{name="drought_l", x=-600, y=0, size=40,shape=1,icon="mess"}, {name="drought_l", x=-600, y=0, size=40,shape=1,icon="mess"},
{name="dig_10l", x=-200, y=-400, size=40,shape=1,icon="dig", unlock={"dig_40l"}}, {name="dig_10l", x=-200, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_40l"}},
{name="dig_40l", x=-400, y=-400, size=40,shape=1,icon="dig", unlock={"dig_100l"}}, {name="dig_40l", x=-400, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_100l"}},
{name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig", unlock={"dig_400l"}}, {name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_400l"}},
{name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig"}, {name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig_sprint"},
{name="marathon_n", x=0, y=-600, size=60,shape=1,icon="marathon",unlock={"marathon_h","rhythm_e","solo_e","round_e","blind_e","classic_fast","survivor_e","bigbang","zen"}}, {name="marathon_n", x=0, y=-600, size=60,shape=1,icon="marathon",unlock={"marathon_h","rhythm_e","solo_e","round_e","blind_e","classic_fast","survivor_e","bigbang","zen"}},
{name="marathon_h", x=0, y=-800, size=50,shape=1,icon="marathon",unlock={"master_beginner"}}, {name="marathon_h", x=0, y=-800, size=50,shape=1,icon="marathon",unlock={"master_beginner"}},
@@ -26,12 +26,12 @@ return{
{name="solo_l", x=-1200,y=-1000,size=40,shape=1,icon="solo", unlock={"solo_u"}}, {name="solo_l", x=-1200,y=-1000,size=40,shape=1,icon="solo", unlock={"solo_u"}},
{name="solo_u", x=-1400,y=-1000,size=40,shape=1,icon="solo"}, {name="solo_u", x=-1400,y=-1000,size=40,shape=1,icon="solo"},
{name="techmino49_e", x=-1100,y=-1200,size=40,shape=1,icon="royale", unlock={"techmino49_h","techmino99_e"}}, {name="techmino49_e", x=-1100,y=-1200,size=40,shape=1,icon="t49", unlock={"techmino49_h","techmino99_e"}},
{name="techmino49_h", x=-1100,y=-1400,size=40,shape=1,icon="royale", unlock={"techmino49_u"}}, {name="techmino49_h", x=-1100,y=-1400,size=40,shape=1,icon="t49", unlock={"techmino49_u"}},
{name="techmino49_u", x=-1100,y=-1600,size=40,shape=1,icon="royale"}, {name="techmino49_u", x=-1100,y=-1600,size=40,shape=1,icon="t49"},
{name="techmino99_e", x=-1300,y=-1400,size=40,shape=1,icon="royale", unlock={"techmino99_h"}}, {name="techmino99_e", x=-1300,y=-1400,size=40,shape=1,icon="t99", unlock={"techmino99_h"}},
{name="techmino99_h", x=-1300,y=-1600,size=40,shape=1,icon="royale", unlock={"techmino99_u"}}, {name="techmino99_h", x=-1300,y=-1600,size=40,shape=1,icon="t99", unlock={"techmino99_u"}},
{name="techmino99_u", x=-1300,y=-1800,size=40,shape=1,icon="royale"}, {name="techmino99_u", x=-1300,y=-1800,size=40,shape=1,icon="t99"},
{name="round_e", x=-600, y=-800, size=40,shape=1,icon="round", unlock={"round_n"}}, {name="round_e", x=-600, y=-800, size=40,shape=1,icon="round", unlock={"round_n"}},
{name="round_n", x=-800, y=-800, size=40,shape=1,icon="round", unlock={"round_h"}}, {name="round_n", x=-800, y=-800, size=40,shape=1,icon="round", unlock={"round_h"}},
@@ -43,20 +43,20 @@ return{
{name="master_advance", x=0, y=-1200,size=40,shape=3,icon="master", unlock={"master_final","GM","master_phantasm"}}, {name="master_advance", x=0, y=-1200,size=40,shape=3,icon="master", unlock={"master_final","GM","master_phantasm"}},
{name="master_final", x=0, y=-1600,size=40,shape=2,icon="master"}, {name="master_final", x=0, y=-1600,size=40,shape=2,icon="master"},
{name="master_phantasm",x=-150, y=-1500,size=40,shape=2,icon="master"}, {name="master_phantasm",x=-150, y=-1500,size=40,shape=2,icon="master"},
{name="GM", x=150, y=-1500,size=40,shape=2,icon="master"}, {name="GM", x=150, y=-1500,size=40,shape=2,icon="gm"},
{name="rhythm_e", x=-350, y=-1000,size=40,shape=1,icon="rhythm", unlock={"rhythm_h"}}, {name="rhythm_e", x=-350, y=-1000,size=40,shape=1,icon="rhythm", unlock={"rhythm_h"}},
{name="rhythm_h", x=-350, y=-1200,size=40,shape=3,icon="rhythm", unlock={"rhythm_u"}}, {name="rhythm_h", x=-350, y=-1200,size=40,shape=3,icon="rhythm", unlock={"rhythm_u"}},
{name="rhythm_u", x=-350, y=-1400,size=40,shape=2,icon="rhythm"}, {name="rhythm_u", x=-350, y=-1400,size=40,shape=2,icon="rhythm"},
{name="blind_e", x=150, y=-700, size=40,shape=1,icon="blind", unlock={"blind_n"}}, {name="blind_e", x=150, y=-700, size=40,shape=1,icon="hidden", unlock={"blind_n"}},
{name="blind_n", x=150, y=-800, size=40,shape=1,icon="blind", unlock={"blind_h"}}, {name="blind_n", x=150, y=-800, size=40,shape=1,icon="hidden", unlock={"blind_h"}},
{name="blind_h", x=150, y=-900, size=35,shape=1,icon="blind", unlock={"blind_l"}}, {name="blind_h", x=150, y=-900, size=35,shape=1,icon="hidden", unlock={"blind_l"}},
{name="blind_l", x=150, y=-1000,size=35,shape=3,icon="blind", unlock={"blind_u"}}, {name="blind_l", x=150, y=-1000,size=35,shape=3,icon="hidden", unlock={"blind_u"}},
{name="blind_u", x=150, y=-1100,size=35,shape=3,icon="blind", unlock={"blind_wtf"}}, {name="blind_u", x=150, y=-1100,size=35,shape=3,icon="hidden", unlock={"blind_wtf"}},
{name="blind_wtf", x=150, y=-1200,size=35,shape=2,icon="blind"}, {name="blind_wtf", x=150, y=-1200,size=35,shape=2,icon="hidden"},
{name="classic_fast", x=-150, y=-950,size=40,shape=2,icon="classic"}, {name="classic_fast", x=-150, y=-950, size=40,shape=2,icon="classic"},
{name="survivor_e", x=300, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_n"}}, {name="survivor_e", x=300, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_n"}},
{name="survivor_n", x=500, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_h","attacker_h","defender_n","dig_h"}}, {name="survivor_n", x=500, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_h","attacker_h","defender_n","dig_h"}},
@@ -64,21 +64,21 @@ return{
{name="survivor_l", x=900, y=-600, size=40,shape=3,icon="survivor",unlock={"survivor_u"}}, {name="survivor_l", x=900, y=-600, size=40,shape=3,icon="survivor",unlock={"survivor_u"}},
{name="survivor_u", x=1100, y=-600, size=40,shape=2,icon="survivor"}, {name="survivor_u", x=1100, y=-600, size=40,shape=2,icon="survivor"},
{name="attacker_h", x=300, y=-800, size=40,shape=1,icon="attacker",unlock={"attacker_u"}}, {name="attacker_h", x=300, y=-800, size=40,shape=1,icon="attack", unlock={"attacker_u"}},
{name="attacker_u", x=300, y=-1000,size=40,shape=1,icon="attacker"}, {name="attacker_u", x=300, y=-1000,size=40,shape=1,icon="attack"},
{name="defender_n", x=500, y=-800, size=40,shape=1,icon="defender",unlock={"defender_l"}}, {name="defender_n", x=500, y=-800, size=40,shape=1,icon="defend", unlock={"defender_l"}},
{name="defender_l", x=500, y=-1000,size=40,shape=1,icon="defender"}, {name="defender_l", x=500, y=-1000,size=40,shape=1,icon="defend"},
{name="dig_h", x=700, y=-800, size=40,shape=1,icon="dig", unlock={"dig_u"}}, {name="dig_h", x=700, y=-800, size=40,shape=1,icon="dig", unlock={"dig_u"}},
{name="dig_u", x=700, y=-1000,size=40,shape=1,icon="dig"}, {name="dig_u", x=700, y=-1000,size=40,shape=1,icon="dig"},
{name="bigbang", x=400, y=-400, size=50,shape=1,icon="bigbang", unlock={"c4wtrain_n","pctrain_n","tech_n"}}, {name="bigbang", x=400, y=-400, size=50,shape=1,icon="bigbang", unlock={"c4wtrain_n","pctrain_n","tech_n"}},
{name="c4wtrain_n", x=700, y=-400, size=40,shape=1,icon="c4wtrain",unlock={"c4wtrain_l"}}, {name="c4wtrain_n", x=700, y=-400, size=40,shape=1,icon="pc",unlock={"c4wtrain_l"}},
{name="c4wtrain_l", x=900, y=-400, size=40,shape=1,icon="c4wtrain"}, {name="c4wtrain_l", x=900, y=-400, size=40,shape=1,icon="pc"},
{name="pctrain_n", x=700, y=-220, size=40,shape=1,icon="pctrain", unlock={"pctrain_l","pc_n"}}, {name="pctrain_n", x=700, y=-220, size=40,shape=1,icon="pc", unlock={"pctrain_l","pc_n"}},
{name="pctrain_l", x=900, y=-220, size=40,shape=1,icon="pctrain"}, {name="pctrain_l", x=900, y=-220, size=40,shape=1,icon="pc"},
{name="pc_n", x=800, y=-100, size=40,shape=1,icon="pc", unlock={"pc_h"}}, {name="pc_n", x=800, y=-100, size=40,shape=1,icon="pc", unlock={"pc_h"}},
{name="pc_h", x=1000, y=-100, size=40,shape=3,icon="pc", unlock={"pc_l"}}, {name="pc_h", x=1000, y=-100, size=40,shape=3,icon="pc", unlock={"pc_l"}},
@@ -101,7 +101,7 @@ return{
{name="zen", x=-800, y=-600, size=40,shape=1,icon="zen", unlock={"ultra","infinite","infinite_dig"}}, {name="zen", x=-800, y=-600, size=40,shape=1,icon="zen", unlock={"ultra","infinite","infinite_dig"}},
{name="ultra", x=-1000,y=-400, size=40,shape=1,icon="ultra"}, {name="ultra", x=-1000,y=-400, size=40,shape=1,icon="ultra"},
{name="infinite", x=-800, y=-400, size=40,shape=1,icon="infinite"}, {name="infinite", x=-800, y=-400, size=40,shape=1,icon="infinite"},
{name="infinite_dig", x=-1000,y=-600, size=40,shape=1,icon="infinite"}, {name="infinite_dig", x=-1000,y=-600, size=40,shape=1,icon="dig"},
{name="sprintFix"}, {name="sprintFix"},
{name="sprintLock"}, {name="sprintLock"},

View File

@@ -67,6 +67,7 @@ local loadingThread=coroutine.create(function()
end end
upFloor() upFloor()
local modeIcons={}
for i=1,#MODES do for i=1,#MODES do
local m=MODES[i]--Mode template local m=MODES[i]--Mode template
local M=require("parts/modes/"..m.name)--Mode file local M=require("parts/modes/"..m.name)--Mode file
@@ -75,11 +76,14 @@ local loadingThread=coroutine.create(function()
M[k]=v M[k]=v
end end
M.records=FILE.load("record/"..m.name..".rec")or M.score and{} M.records=FILE.load("record/"..m.name..".rec")or M.score and{}
-- M.icon=gc.newImage("media/image/modeIcon/"..m.icon..".png") if m.icon then
-- M.icon=gc.newImage("media/image/modeIcon/custom.png") if not modeIcons[m.icon]then
modeIcons[m.icon]=gc.newImage("media/image/modeicon/"..m.icon..".png")
end
M.icon=modeIcons[m.icon]
end
if i%5==0 then YIELD()end if i%5==0 then YIELD()end
end end
upFloor() upFloor()
SKIN.change(SETTING.skinSet) SKIN.change(SETTING.skinSet)
if newVersionLaunch then--Delete old ranks & Unlock modes which should be locked if newVersionLaunch then--Delete old ranks & Unlock modes which should be locked

View File

@@ -4,7 +4,7 @@ local ms,kb,tc=love.mouse,love.keyboard,love.touch
local max,min=math.max,math.min local max,min=math.max,math.min
local int,abs=math.floor,math.abs local int,abs=math.floor,math.abs
local sin=math.sin local sin,cos=math.sin,math.cos
local mapCam={ local mapCam={
sel=false,--Selected mode ID sel=false,--Selected mode ID
@@ -42,9 +42,9 @@ local function onMode(x,y)
if M.shape==1 then if M.shape==1 then
if x>M.x-s and x<M.x+s and y>M.y-s and y<M.y+s then return name end if x>M.x-s and x<M.x+s and y>M.y-s and y<M.y+s then return name end
elseif M.shape==2 then elseif M.shape==2 then
if abs(x-M.x)+abs(y-M.y)<s then return name end if abs(x-M.x)+abs(y-M.y)+12<s then return name end
elseif M.shape==3 then elseif M.shape==3 then
if(x-M.x)^2+(y-M.y)^2<s^2 then return name end if(x-M.x)^2+(y-M.y)^2<(s+6)^2 then return name end
end end
end end
end end
@@ -185,6 +185,14 @@ function scene.update()
end end
end end
local rankColor={
{.4,.1,.1}, --D
{.4,.35,.3}, --C
{.6,.4,.2}, --B
{.7,.75,.85}, --A
{.95,.9,.3}, --S
{.2,.7,.2}, --Special
}
function scene.draw() function scene.draw()
local _ local _
gc.push("transform") gc.push("transform")
@@ -196,7 +204,7 @@ function scene.draw()
local R=RANKS local R=RANKS
local sel=mapCam.sel local sel=mapCam.sel
--Draw lines connecting modes --Lines connecting modes
gc.setLineWidth(8) gc.setLineWidth(8)
gc.setColor(1,1,1,.2) gc.setColor(1,1,1,.2)
for name,M in next,MODES do for name,M in next,MODES do
@@ -208,63 +216,61 @@ function scene.draw()
end end
end end
setFont(60) --Modes
setFont(80)
for name,M in next,MODES do for name,M in next,MODES do
if R[name]then if R[name]then
local c=rankColor[R[M.name]] local S=M.size
if c then gc.setColor(1,1,1)
gc.setColor(c) gc.setLineWidth(4)
else
c=.5+sin(TIME()*6.26)*.2 --Frame & fill
gc.setColor(c,c,c) local drawType="line"
::again::
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
gc.circle(drawType,M.x,M.y,S+12,4)
elseif M.shape==3 then--Octagon
gc.circle(drawType,M.x,M.y,S+6,8)
end
if sel==name and drawType=="line"then
gc.setColor(1,1,1,.42)
drawType="fill"
goto again
end end
local S=M.size --Icon
if M.shape==1 then--Rectangle local icon=M.icon
gc.rectangle("fill",M.x-S,M.y-S,2*S,2*S) if icon then
if sel==name then local length=icon:getWidth()*.5
gc.setColor(1,1,1) local k=S/length
gc.setLineWidth(10) if R[M.name]>0 then
gc.rectangle("line",M.x-S+5,M.y-S+5,2*S-10,2*S-10) gc.setColor(.95,.95,.95)
end for j=1,4 do
elseif M.shape==2 then--Diamond local t=TIME()*3+1.57*j
gc.circle("fill",M.x,M.y,S+5,4) gc.draw(icon,M.x+2.6*cos(t),M.y+2.6*sin(t),nil,k,nil,length,length)
if sel==name then end
gc.setColor(1,1,1) gc.setColor(rankColor[R[M.name]])
gc.setLineWidth(10) else
gc.circle("line",M.x,M.y,S+5,4) gc.setColor(.6,.6,.6)
end
elseif M.shape==3 then--Octagon
gc.circle("fill",M.x,M.y,S,8)
if sel==name then
gc.setColor(1,1,1)
gc.setLineWidth(10)
gc.circle("line",M.x,M.y,S,8)
end end
gc.draw(icon,M.x,M.y,nil,k,nil,length,length)
end end
--Rank
name=text.ranks[R[M.name]] name=text.ranks[R[M.name]]
if name then if name then
gc.setColor(0,0,0,.26) gc.setColor(0,0,0,.8)
mStr(name,M.x,M.y-40) mStr(name,M.x+M.size*.7,M.y-50-M.size*.7)
gc.setColor(.9,.9,.9)
mStr(name,M.x+M.size*.7+4,M.y-50-M.size*.7-4)
end end
--[[
if M.icon then
local i=M.icon
local l=i:getWidth()*.5
local k=S/l*.8
gc.setColor(0,0,0,2)
gc.draw(i,M.x-1,M.y-1,nil,k,nil,l,l)
gc.draw(i,M.x-1,M.y+1,nil,k,nil,l,l)
gc.draw(i,M.x+1,M.y-1,nil,k,nil,l,l)
gc.draw(i,M.x+1,M.y+1,nil,k,nil,l,l)
gc.setColor(1,1,1)
gc.draw(i,M.x,M.y,nil,k,nil,l,l)
end
]]
end end
end end
gc.pop() gc.pop()
--Score board
if sel then if sel then
local M=MODES[sel] local M=MODES[sel]
gc.setColor(.7,.7,.7,.5) gc.setColor(.7,.7,.7,.5)

View File

@@ -260,22 +260,10 @@ function scene.draw()
if GAME.rank>0 then if GAME.rank>0 then
local str=text.ranks[GAME.rank] local str=text.ranks[GAME.rank]
setFont(80) setFont(80)
gc.setColor(0,0,0,T*.7)
gc.setColor(0,0,0,T*.3) gc.print(str,100*T^.5-5,-14,nil,1.8)
gc.print(str,46,-14,nil,1.8) gc.setColor(1,1,1,T)
gc.print(str,46,-6,nil,1.8) gc.print(str,100*T^.5,-10,nil,1.8)
gc.print(str,54,-14,nil,1.8)
gc.print(str,54,-6,nil,1.8)
gc.setColor(0,0,0,T*.15)
gc.print(str,46,-10,nil,1.8)
gc.print(str,54,-10,nil,1.8)
gc.print(str,50,-14,nil,1.8)
gc.print(str,50,-6,nil,1.8)
local L=rankColor[GAME.rank]
gc.setColor(L[1],L[2],L[3],T)
gc.print(str,50,-10,nil,1.8)
end end
--Radar Chart --Radar Chart