Difference between revisions of "Lily (日本語)"

m (Lily v.3.0.6 対応のための更新 (出典元: Lily の Github ページ))
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Lily は LÖVE LÖVE 用の非同期読み込みライブラリです。
+
Lily は LÖVE 用の非同期読み込みライブラリです。
  
 
独立したスレッドでリソースを読み込めるようにします (つまり、動作速度向上になります)。 Lily は [[love-loader (日本語)|love-loader]] よりも性能が良く、より多くのスレッドと関数を扱えます。
 
独立したスレッドでリソースを読み込めるようにします (つまり、動作速度向上になります)。 Lily は [[love-loader (日本語)|love-loader]] よりも性能が良く、より多くのスレッドと関数を扱えます。
Line 16: Line 16:
 
function love.load()
 
function love.load()
 
lily.newImage("image.png"):onComplete(function(userdata, image)
 
lily.newImage("image.png"):onComplete(function(userdata, image)
-- In v2.0, there's "userdata" before the return value
+
-- これらは v2.0 において、返値を返す前の "userdata" です
 
myimage = image
 
myimage = image
 
end)
 
end)
 
lily.newSource("song.wav"):onComplete(function(userdata, sound)
 
lily.newSource("song.wav"):onComplete(function(userdata, sound)
-- In v2.0, there's "userdata" before the return value
+
-- これらは v2.0 において、返値を返す前の "userdata" です
 
mysound = sound
 
mysound = sound
 
sound:play()
 
sound:play()
Line 32: Line 32:
 
end
 
end
 
</source>
 
</source>
 +
 
=== 複数の読み込み ===
 
=== 複数の読み込み ===
 
<source lang="lua">
 
<source lang="lua">

Latest revision as of 14:07, 17 December 2019

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

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

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

後述の用例は Lily v3.0.6 用です。

用例

単独の読み込み

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

function love.load()
	lily.newImage("image.png"):onComplete(function(userdata, image)
		-- これらは v2.0 において、返値を返す前の "userdata" です
		myimage = image
	end)
	lily.newSource("song.wav"):onComplete(function(userdata, sound)
		-- これらは v2.0 において、返値を返す前の "userdata" です
		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")},	-- または関数オブジェクトを使用できます
	})

	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

リンク

そのほかの言語