From f4c13fcacb496f1a417e23eae169aadb1b5280a4 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Sun, 25 Oct 2020 13:01:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9A=AE=E8=82=A4=E6=96=87=E4=BB=B6=E5=88=86?= =?UTF-8?q?=E6=AE=B5=E5=8A=A0=E8=BD=BD=EF=BC=8C=E8=A7=A3=E8=B0=9C=E8=B4=B4?= =?UTF-8?q?=E5=9B=BE=E7=8B=AC=E7=AB=8B=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/scenes.lua | 40 ++++++++++++++++++++--- parts/skin.lua | 84 +++++++++++++++++++----------------------------- 2 files changed, 69 insertions(+), 55 deletions(-) diff --git a/parts/scenes.lua b/parts/scenes.lua index 9ea8451e..2bcfedda 100644 --- a/parts/scenes.lua +++ b/parts/scenes.lua @@ -169,8 +169,10 @@ do--load #SFX.list, IMG.getCount(), 17,--Fontsize 20~100 + SKIN.getCount(), #Modes, 1, + 1, }, skip=false,--If skipped } @@ -211,6 +213,8 @@ do--load elseif S.phase==5 then getFont(15+5*S.cur) elseif S.phase==6 then + SKIN.loadOne(S.cur) + elseif S.phase==7 then local m=Modes[S.cur]--Mode template local M=require("modes/"..m.name)--Mode file Modes[m.name],Modes[S.cur]=M @@ -227,12 +231,40 @@ do--load end -- M.icon=gc.newImage("image/modeIcon/"..m.icon..".png") -- M.icon=gc.newImage("image/modeIcon/custom.png") - elseif S.phase==7 then - --------------------------Loading other little things here - SKIN.load() + elseif S.phase==8 then + local function C(x,y) + local _=gc.newCanvas(x,y) + gc.setCanvas(_) + return _ + end + + puzzleMark={} + gc.setLineWidth(3) + for i=1,11 do + puzzleMark[i]=C(30,30) + _=SKIN.libColor[i] + gc.setColor(_[1],_[2],_[3],.6) + gc.rectangle("line",5,5,20,20) + gc.rectangle("line",10,10,10,10) + end + for i=12,17 do + puzzleMark[i]=C(30,30) + gc.setColor(SKIN.libColor[i]) + gc.rectangle("line",7,7,16,16) + end + local _=C(30,30) + gc.setColor(1,1,1) + gc.line(5,5,25,25) + gc.line(5,25,25,5) + puzzleMark[-1]=C(30,30) + gc.setColor(1,1,1,.9) + gc.draw(_) + _:release() + gc.setCanvas() + elseif S.phase==9 then + SKIN.change(SETTING.skinSet) STAT.run=STAT.run+1 LOADED=true - -------------------------- SFX.play("welcome_sfx") VOC.play("welcome_voc") httpRequest(TICK.httpREQ_launch,"api/game") diff --git a/parts/skin.lua b/parts/skin.lua index d932c211..8abc9af4 100644 --- a/parts/skin.lua +++ b/parts/skin.lua @@ -28,6 +28,7 @@ local list={ "white_bone(mrz)", "WTF", } +local count=#list local SKIN={} SKIN.lib={} SKIN.libMini={} @@ -50,74 +51,55 @@ SKIN.libColor={ color.dRed, color.dGreen, } -function SKIN.load() - local _ +function SKIN.getCount() + return count +end +function SKIN.loadOne(_) gc.push() gc.origin() gc.setDefaultFilter("nearest","nearest") gc.setColor(1,1,1) - for i=1,#list do - SKIN.lib[i],SKIN.libMini[i]={},{}--30/6 - local N="/image/skin/"..list[i]..".png" - local I - if love.filesystem.getInfo(N)then - I=gc.newImage(N) - else - I=gc.newImage("/image/skin/"..list[1]..".png") - LOG.print("No skin file: "..list[i],"warn") - end - for j=1,11 do - SKIN.lib[i][j]=C(30,30) - gc.draw(I,30-30*j,0) + SKIN.lib[_],SKIN.libMini[_]={},{}--30/6 + local N="/image/skin/"..list[_]..".png" + local I + if love.filesystem.getInfo(N)then + I=gc.newImage(N) + else + I=gc.newImage("/image/skin/"..list[1]..".png") + LOG.print("No skin file: "..list[_],"warn") + end + for j=1,11 do + SKIN.lib[_][j]=C(30,30) + gc.draw(I,30-30*j,0) - SKIN.libMini[i][j]=C(6,6) - gc.draw(I,6-6*j,0,nil,.2) - end - for j=1,6 do - SKIN.lib[i][11+j]=C(30,30) - gc.draw(I,30-30*j,-30) + SKIN.libMini[_][j]=C(6,6) + gc.draw(I,6-6*j,0,nil,.2) + end + for j=1,6 do + SKIN.lib[_][11+j]=C(30,30) + gc.draw(I,30-30*j,-30) - SKIN.libMini[i][11+j]=C(6,6) - gc.draw(I,6-6*j,-6,nil,.2) - end - I:release() + SKIN.libMini[_][11+j]=C(6,6) + gc.draw(I,6-6*j,-6,nil,.2) end - SKIN.change(SETTING.skinSet) - puzzleMark={} - gc.setLineWidth(3) - for i=1,11 do - puzzleMark[i]=C(30,30) - _=SKIN.libColor[i] - gc.setColor(_[1],_[2],_[3],.6) - gc.rectangle("line",5,5,20,20) - gc.rectangle("line",10,10,10,10) - end - for i=12,17 do - puzzleMark[i]=C(30,30) - gc.setColor(SKIN.libColor[i]) - gc.rectangle("line",7,7,16,16) - end - _=C(30,30) - gc.setColor(1,1,1) - gc.line(5,5,25,25) - gc.line(5,25,25,5) - puzzleMark[-1]=C(30,30) - gc.setColor(1,1,1,.9) - gc.draw(_) - _:release() + I:release() gc.setCanvas() gc.pop() end -local L=#list +function SKIN.loadAll() + for i=1,count do + SFX.loadOne(i) + end +end function SKIN.prevSet()--Prev skin_set - local _=(SETTING.skinSet-2)%L+1 + local _=(SETTING.skinSet-2)%count+1 SETTING.skinSet=_ SKIN.change(_) _=list[_] TEXT.show(_,1100,100,int(300/#_)+5,"fly") end function SKIN.nextSet()--Next skin_set - local _=SETTING.skinSet%L+1 + local _=SETTING.skinSet%count+1 SETTING.skinSet=_ SKIN.change(_) _=list[_]