From 4b2c55d90ea479404daf490e904d8630aca66983 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Wed, 21 Jul 2021 02:37:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7image=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=86=8D=E9=9C=80=E8=A6=81=E5=9C=A8=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E6=97=B6=E5=B0=B1=E5=8A=A0=E8=BD=BD=E5=A5=BD=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/image.lua | 47 ++++++++++++++++-------------------------- main.lua | 48 +++++++++++++++++++++---------------------- parts/scenes/load.lua | 1 - 3 files changed, 42 insertions(+), 54 deletions(-) diff --git a/Zframework/image.lua b/Zframework/image.lua index 7ccf8eb9..7385ce6c 100644 --- a/Zframework/image.lua +++ b/Zframework/image.lua @@ -1,37 +1,26 @@ -local IMG={ - getCount=function()return 0 end, - loadOne=function()error("Cannot load before init!")end, - loadAll=function()error("Cannot load before init!")end, -} +local IMG={} function IMG.init(list) IMG.init=nil - local count=0 - for k,v in next,list do - count=count+1 - IMG[k]=v - end - function IMG.getCount()return count end - local function load(skip) - local loaded=0 - for k,v in next,list do - if type(v)=='string'then - IMG[k]=love.graphics.newImage('media/image/'..v) - else - for i=1,#v do - v[i]=love.graphics.newImage('media/image/'..v[i]) - end - IMG[k]=v - end - loaded=loaded+1 - if not skip and loaded~=count then - coroutine.yield() + + local null=love.graphics.newCanvas(1,1) + setmetatable(IMG,{__index=function(self,name) + if type(list[name])=='table'then + self[name]={} + for i=1,#list do + self[name][i]=love.graphics.newImage(list[name][i]) end + elseif type(list[name])=='string'then + self[name]=love.graphics.newImage(list[name]) + else + MES.new('warn',"No BGM: "..name,5) + self[name]=null end - IMG.loadOne=nil + return self[name] + end}) + + function IMG.loadAll() + for k in next,list do local _=IMG[k]end IMG.loadAll=nil end - - IMG.loadOne=coroutine.wrap(load) - function IMG.loadAll()load(true)end end return IMG \ No newline at end of file diff --git a/main.lua b/main.lua index b3aa4bc7..65ce089f 100644 --- a/main.lua +++ b/main.lua @@ -96,33 +96,33 @@ if SETTING.fullscreen then love.window.setFullscreen(true)end --Initialize image libs IMG.init{ - lock='mess/lock.png', - dialCircle='mess/dialCircle.png', - dialNeedle='mess/dialNeedle.png', - lifeIcon='mess/life.png', - badgeIcon='mess/badge.png', - ctrlSpeedLimit='mess/ctrlSpeedLimit.png', - speedLimit='mess/speedLimit.png',--Not used, for future C2-mode - pay1='mess/pay1.png', - pay2='mess/pay2.png', + lock='media/image/mess/lock.png', + dialCircle='media/image/mess/dialCircle.png', + dialNeedle='media/image/mess/dialNeedle.png', + lifeIcon='media/image/mess/life.png', + badgeIcon='media/image/mess/badge.png', + ctrlSpeedLimit='media/image/mess/ctrlSpeedLimit.png', + speedLimit='media/image/mess/speedLimit.png',--Not used, for future C2-mode + pay1='media/image/mess/pay1.png', + pay2='media/image/mess/pay2.png', - miyaCH='characters/miya.png', - miyaF1='characters/miya_f1.png', - miyaF2='characters/miya_f2.png', - miyaF3='characters/miya_f3.png', - miyaF4='characters/miya_f4.png', - nakiCH='characters/nakiharu.png', - xiaoyaCH='characters/xiaoya.png', - electric='characters/electric.png', - hbm='characters/hbm.png', + miyaCH='media/image/characters/miya.png', + miyaF1='media/image/characters/miya_f1.png', + miyaF2='media/image/characters/miya_f2.png', + miyaF3='media/image/characters/miya_f3.png', + miyaF4='media/image/characters/miya_f4.png', + nakiCH='media/image/characters/nakiharu.png', + xiaoyaCH='media/image/characters/xiaoya.png', + electric='media/image/characters/electric.png', + hbm='media/image/characters/hbm.png', lanterns={ - 'lanterns/1.png', - 'lanterns/2.png', - 'lanterns/3.png', - 'lanterns/4.png', - 'lanterns/5.png', - 'lanterns/6.png', + 'media/image/lanterns/1.png', + 'media/image/lanterns/2.png', + 'media/image/lanterns/3.png', + 'media/image/lanterns/4.png', + 'media/image/lanterns/5.png', + 'media/image/lanterns/6.png', }, } SKIN.init{ diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua index c8845ecf..6a798b69 100644 --- a/parts/scenes/load.lua +++ b/parts/scenes/load.lua @@ -21,7 +21,6 @@ local loadingThread=coroutine.wrap(function() logoColor2={COLOR.rainbow_light(r)} end YIELD('loadSFX')SFX.loadAll() - YIELD('loadImage')IMG.loadAll() YIELD('loadSkin') for i=1,SKIN.getCount()do SKIN.loadOne()