defold

game engine Defoldのまとめ

More than 1 year has passed since last update.

 最近さわり始めたgame engine Defoldのapiの使い方などについて随時まとめていきます。基本的に自分がゲームを作っていく中で気付いたこと順です。
 公式のtutorialはやって、GameObjectやatlasといった基本的な名称については分かっていること前提です。

キー入力の取り方

input bindingの設定

まずデバイスからの入力に対するアクションの定義をgame.input_bindingに行う。
Input Binding > key_triggerに入力の種類ごとにinput,actionを定義していく。inputはキーの種類(KEY_SPACEなど)。actionはキーを入力したときに発行されるidになるので、一意な名前をつける。jump, shotなど。

input focusするgame objectへのコーディング

キー入力を受け取るgame objectに紐付けたscriptのinit(で、なくてもいいのだが)に以下のコードを記載する。

function init(self)
    -- acquire input focus as soon as the instance has been initialized
    msg.post(".", "acquire_input_focus")
end

 コメントに書いてある通りなのだが、'acquire_input_focus'をpostされたgame object("."はcurrent game object)がキー入力を補足するgame objectとなる。
 acquire_input_focusをpostしたgame objectは、定義されたキー入力があった場合にon_input()が呼び出される。
 on_input()には入力されたキーに対応したaction_id(input bindingでキーのactionに設定した文字列)で呼び出されるので、キー入力のaction_idごとに実行するコードを記載する。

function on_input(self, action_id, action)
    if action_id == hash("jump") then
        -- jumpの時に実行
    end
end

 msg.postについて⇒Defold - API REFERENCE -: msg.post
 acquire_input_focusについて⇒Defold - API REFERENCE - : acquire_input_focus