Lily (日本語)
Lily は LÖVE LÖVE 用の非同期読み込みライブラリです。
独立したスレッドでリソースを読み込めるようにします (つまり、動作速度向上になります)。 Lily は love-loader よりも性能が良く、より多くのスレッドと関数を扱えます。
Image, ImageData, Video, Source, SoundData などの各種リソースに幅広く対応しています。
後述の用例は Lily v2.0 用です。
Contents
用例
単独の読み込み
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
リンク
- GitHub レポジトリ (取扱説明書も掲載)
- フォーラムのスレッド