升级image模块,不再需要在启动时就加载好图片资源
This commit is contained in:
@@ -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
|
||||
|
||||
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
|
||||
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)
|
||||
elseif type(list[name])=='string'then
|
||||
self[name]=love.graphics.newImage(list[name])
|
||||
else
|
||||
for i=1,#v do
|
||||
v[i]=love.graphics.newImage('media/image/'..v[i])
|
||||
MES.new('warn',"No BGM: "..name,5)
|
||||
self[name]=null
|
||||
end
|
||||
IMG[k]=v
|
||||
end
|
||||
loaded=loaded+1
|
||||
if not skip and loaded~=count then
|
||||
coroutine.yield()
|
||||
end
|
||||
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
|
||||
48
main.lua
48
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{
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user