地图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

View File

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

View File

@@ -1,21 +1,21 @@
return{
{name="sprint_10l", x=0, y=0, size=40,shape=1,icon="sprint", unlock={"sprint_20l","sprint_40l"}},
{name="sprint_20l", x=-200, y=0, size=50,shape=1,icon="sprint"},
{name="sprint_40l", x=0, y=-300, size=40,shape=1,icon="sprint", 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_400l", x=-400, y=-200, size=40,shape=1,icon="sprint", unlock={"sprint_1000l"}},
{name="sprint_1000l", x=-600, y=-200, size=40,shape=1,icon="sprint"},
{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="sprint1"},
{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="sprint2", unlock={"sprint_400l","drought_n"}},
{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="sprint3"},
{name="sprintPenta", x=210, y=-370, size=40,shape=3,icon="sprint"},
{name="sprintMPH", x=210, y=-230, 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="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="dig_10l", x=-200, y=-400, size=40,shape=1,icon="dig", unlock={"dig_40l"}},
{name="dig_40l", x=-400, y=-400, size=40,shape=1,icon="dig", unlock={"dig_100l"}},
{name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig", unlock={"dig_400l"}},
{name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig"},
{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_sprint", unlock={"dig_100l"}},
{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_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_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_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_h", x=-1100,y=-1400,size=40,shape=1,icon="royale", unlock={"techmino49_u"}},
{name="techmino49_u", x=-1100,y=-1600,size=40,shape=1,icon="royale"},
{name="techmino99_e", x=-1300,y=-1400,size=40,shape=1,icon="royale", unlock={"techmino99_h"}},
{name="techmino99_h", x=-1300,y=-1600,size=40,shape=1,icon="royale", unlock={"techmino99_u"}},
{name="techmino99_u", x=-1300,y=-1800,size=40,shape=1,icon="royale"},
{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="t49", unlock={"techmino49_u"}},
{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="t99", unlock={"techmino99_h"}},
{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="t99"},
{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"}},
@@ -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_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="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_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="blind_e", x=150, y=-700, size=40,shape=1,icon="blind", unlock={"blind_n"}},
{name="blind_n", x=150, y=-800, size=40,shape=1,icon="blind", unlock={"blind_h"}},
{name="blind_h", x=150, y=-900, size=35,shape=1,icon="blind", unlock={"blind_l"}},
{name="blind_l", x=150, y=-1000,size=35,shape=3,icon="blind", unlock={"blind_u"}},
{name="blind_u", x=150, y=-1100,size=35,shape=3,icon="blind", unlock={"blind_wtf"}},
{name="blind_wtf", x=150, y=-1200,size=35,shape=2,icon="blind"},
{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="hidden", unlock={"blind_h"}},
{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="hidden", unlock={"blind_u"}},
{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="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_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_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_u", x=300, y=-1000,size=40,shape=1,icon="attacker"},
{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="attack"},
{name="defender_n", x=500, y=-800, size=40,shape=1,icon="defender",unlock={"defender_l"}},
{name="defender_l", x=500, y=-1000,size=40,shape=1,icon="defender"},
{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="defend"},
{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="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_l", x=900, y=-400, size=40,shape=1,icon="c4wtrain"},
{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="pc"},
{name="pctrain_n", x=700, y=-220, size=40,shape=1,icon="pctrain", unlock={"pctrain_l","pc_n"}},
{name="pctrain_l", x=900, y=-220, size=40,shape=1,icon="pctrain"},
{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="pc"},
{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"}},
@@ -101,7 +101,7 @@ return{
{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="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="sprintLock"},

View File

@@ -67,6 +67,7 @@ local loadingThread=coroutine.create(function()
end
upFloor()
local modeIcons={}
for i=1,#MODES do
local m=MODES[i]--Mode template
local M=require("parts/modes/"..m.name)--Mode file
@@ -75,11 +76,14 @@ local loadingThread=coroutine.create(function()
M[k]=v
end
M.records=FILE.load("record/"..m.name..".rec")or M.score and{}
-- M.icon=gc.newImage("media/image/modeIcon/"..m.icon..".png")
-- M.icon=gc.newImage("media/image/modeIcon/custom.png")
if m.icon then
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
end
upFloor()
SKIN.change(SETTING.skinSet)
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 int,abs=math.floor,math.abs
local sin=math.sin
local sin,cos=math.sin,math.cos
local mapCam={
sel=false,--Selected mode ID
@@ -42,9 +42,9 @@ local function onMode(x,y)
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
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
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
@@ -185,6 +185,14 @@ function scene.update()
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()
local _
gc.push("transform")
@@ -196,7 +204,7 @@ function scene.draw()
local R=RANKS
local sel=mapCam.sel
--Draw lines connecting modes
--Lines connecting modes
gc.setLineWidth(8)
gc.setColor(1,1,1,.2)
for name,M in next,MODES do
@@ -208,63 +216,61 @@ function scene.draw()
end
end
setFont(60)
--Modes
setFont(80)
for name,M in next,MODES do
if R[name]then
local c=rankColor[R[M.name]]
if c then
gc.setColor(c)
else
c=.5+sin(TIME()*6.26)*.2
gc.setColor(c,c,c)
local S=M.size
gc.setColor(1,1,1)
gc.setLineWidth(4)
--Frame & fill
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
local S=M.size
if M.shape==1 then--Rectangle
gc.rectangle("fill",M.x-S,M.y-S,2*S,2*S)
if sel==name then
gc.setColor(1,1,1)
gc.setLineWidth(10)
gc.rectangle("line",M.x-S+5,M.y-S+5,2*S-10,2*S-10)
end
elseif M.shape==2 then--Diamond
gc.circle("fill",M.x,M.y,S+5,4)
if sel==name then
gc.setColor(1,1,1)
gc.setLineWidth(10)
gc.circle("line",M.x,M.y,S+5,4)
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)
--Icon
local icon=M.icon
if icon then
local length=icon:getWidth()*.5
local k=S/length
if R[M.name]>0 then
gc.setColor(.95,.95,.95)
for j=1,4 do
local t=TIME()*3+1.57*j
gc.draw(icon,M.x+2.6*cos(t),M.y+2.6*sin(t),nil,k,nil,length,length)
end
gc.setColor(rankColor[R[M.name]])
else
gc.setColor(.6,.6,.6)
end
gc.draw(icon,M.x,M.y,nil,k,nil,length,length)
end
--Rank
name=text.ranks[R[M.name]]
if name then
gc.setColor(0,0,0,.26)
mStr(name,M.x,M.y-40)
gc.setColor(0,0,0,.8)
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
--[[
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
gc.pop()
--Score board
if sel then
local M=MODES[sel]
gc.setColor(.7,.7,.7,.5)

View File

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