Lily (日本語)

Lily は LÖVE LÖVE 用の非同期読み込みライブラリです。

独立したスレッドでリソースを読み込めるようにします (つまり、動作速度向上になります)。 Lily は love-loader よりも性能が良く、より多くのスレッドと関数を扱えます。

Image, ImageData, Video, Source, SoundData などの各種リソースに幅広く対応しています。

後述の用例は Lily v2.0 用です。

用例

単独の読み込み

local lily = require("lily")
local myimage
local mysound

function love.load()
	lily.newImage("image.png"):onComplete(function(userdata, image)
		-- In v2.0, there's "userdata" before the return value
		myimage = image
	end)
	lily.newSource("song.wav"):onComplete(function(userdata, sound)
		-- In v2.0, there's "userdata" before the return value
		mysound = sound
		sound:play()
	end)
end

function love.draw()
	if myimage then love.graphics.draw(myimage, 0, 24, 0, 0.25, 0.25)
	else love.graphics.print("Loading image") end
	if not(mysound) then love.graphics.print("Loading song", 0, 12) end
end

複数の読み込み

local lily = require("lily")

function love.load()
	multilily = lily.loadMulti({
		{"newImage", "image1-0.png"},	-- 文字列
		{lily.newImage, love.filesystem.newFile("image1-1.png")},	-- または関数オブジェクトを使用できます
	})
	local a = love.timer.getTime()
	multilily:onComplete(function(_, lilies)
		image1 = lilies[1][1]
		image2 = lilies[2][1]
	end)
end

function love.update() end
function love.draw()
	if multilily:isComplete() then
		love.graphics.draw(image1, -1024, -1024)
		love.graphics.draw(image2)
	end
end

リンク

そのほかの言語