【Defold】コルーチンライブラリ「DefUniCo」アセット

Defold, DEVELOP

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)

お知らせ

Posted by kazupon