【Defold】コルーチンライブラリ「DefUniCo」アセット
DefUniCo は Defold でコルーチンを便利に使うためのアセットです。
目次
アセットページ
https://defold.com/assets/defunico/
ライブラリのURL
https://github.com/u16kuma/defunico/archive/1.0.zip
サンプル
セットアップ
local defunico = require("defunico.defunico")
function init(self)
defunico.init(self)
end
function update(self, dt)
self.update_coroutine(dt)
end
コルーチンの開始
function init(self)
defunico.init(self)
self.start_coroutine(function(self)
-- wait one second
wait_seconds(1)
print("One second has passed.")
end)
end
コルーチンの停止
local co = self.start_coroutine(function() ... end)
self.stop_coroutine(co)
待機
self.start_coroutine(function(self)
-- wait one second
wait_seconds(1)
-- wait one second
wait_msec(1000)
-- wait one second (60 fps)
wait_frame(60)
-- wait one second (60 fps)
local frame = 0
wait_until(function()
frame = frame + 1
return frame >= 60
end)
-- wait one second (60 fps)
frame = 0
wait_while(function()
frame = frame + 1
return frame <= 60
end)
-- need to write self.on_input_coroutine to on_input
local input_pack = self.wait_until_input(function(action_id, action)
return action_id == hash("touch")
end)
-- need to write self.on_message_coroutine to on_message
local msg_pack = self.wait_until_message(function(message_id, message, sender)
return message_id == hash("update")
end)
end)