この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新リビジョン 両方とも次のリビジョン | ||
wiki:defold2:tips:003 [2017/10/23 22:58] step |
wiki:defold2:tips:003 [2017/11/11 13:31] step |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== 公式チュートリアル War battles で学習する ====== | + | ====== 003 公式チュートリアル War battles で学習する ====== |
===== 概要 ===== | ===== 概要 ===== | ||
ライン 435: | ライン 435: | ||
===== UIの実装 ===== | ===== UIの実装 ===== | ||
スコアの表示や、クリア用のUIを作ります。 | スコアの表示や、クリア用のUIを作ります。 | ||
- | - Assetsを右クリック -> New -> Font からフォントを追加。名前は[text.font]とします。 | + | - Assets/mainフォルダを右クリック -> New -> Font からフォントを追加。名前は[text.font]とします。 |
- text.font を開いて[04font.ttf]を選択します。 | - text.font を開いて[04font.ttf]を選択します。 | ||
- | - Assetsを右クリック -> New -> Guiを選択。名前は[ui.Gui]とします。 | + | - Assets/mainフォルダを右クリック -> New -> Guiを選択。名前は[ui.Gui]とします。 |
- ui.Guiを開いてOutLineからFonts を選択し右クリック -> Add ー> text.font を選択します。 | - ui.Guiを開いてOutLineからFonts を選択し右クリック -> Add ー> text.font を選択します。 | ||
- Nodesを選択し右クリック -> Add -> Text を追加。名前は[score]とします。テキスト内容は“SCORE: 0”を設定しておきます。 | - Nodesを選択し右クリック -> Add -> Text を追加。名前は[score]とします。テキスト内容は“SCORE: 0”を設定しておきます。 | ||
ライン 443: | ライン 443: | ||
{{:wiki:defold2:tips:2017-10-24_7.57.59.png|}} | {{:wiki:defold2:tips:2017-10-24_7.57.59.png|}} | ||
+ | \\ | ||
+ | \\ | ||
+ | - Assets/mainフォルダを右クリック -> New -> Gui Scriptを追加。名前は[ui.gui_script] | ||
+ | - ui.gui ファイルを開いて、Outlineの"Guiを選択した状態で表示されるプロパティのScriptに先程作成した[ui.gui_script]を設定します。 | ||
+ | - main.collection.を開いて、Outlineから右クリック -> Add Game Object ー> ゲームオブジェクトの名前は"gui"とします。 | ||
+ | - "gui"ゲームオブジェクトを右クリック -> Add Component File から"ui.gui"を選択します。 | ||
+ | {{:wiki:defold2:tips:2017-10-29_21.26.11.png|}} | ||
- | 執筆中... | + | 画面にスコアが表示されました。次はスコアを加算していくためのスクリプトを書いていきます。 |
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== スコアの更新 ===== | ||
+ | - ui.gui_scriptを開きます。 | ||
+ | |||
+ | <sxh javascript; title: ui.gui_script> | ||
+ | function init(self) | ||
+ | -- score の変数を定義し0で初期化します。 | ||
+ | self.score = 0 | ||
+ | end | ||
+ | |||
+ | function on_message(self, message_id, message, sender) | ||
+ | |||
+ | -- "add_score"メッセージが返された時に | ||
+ | if message_id == hash("add_score") then | ||
+ | -- scoreを加算する。 | ||
+ | self.score = self.score + message.score | ||
+ | -- score ノードを取得して、テキストを更新します。 | ||
+ | local scorenode = gui.get_node("score") | ||
+ | gui.set_text(scorenode, "SCORE: " .. self.score) | ||
+ | end | ||
+ | end | ||
+ | </sxh> | ||
+ | |||
+ | - add_score メッセージを発火するためのスクリプトをrocket.gui_scriptに書きます。 | ||
+ | <sxh javascript; title: rocket.script> | ||
+ | function on_message(self, message_id, message, sender) | ||
+ | if message_id == hash("animation_done") then | ||
+ | go.delete() | ||
+ | -- Add | ||
+ | elseif message_id == hash("collision_response") then | ||
+ | explode(self) | ||
+ | go.delete(message.other_id) | ||
+ | -- スコアを100点追加。 | ||
+ | msg.post("/gui#ui", "add_score", {score = 100}) | ||
+ | end | ||
+ | end | ||
+ | </sxh> | ||
+ | これでロケットで戦車を倒すとスコアが100点加算される様になります。 | ||
+ | ===== 終わり ===== | ||
+ | - 公式チュートリアルはここで終了しています。 | ||
+ | - なんどもトライ&エラーを繰り返してコツを掴むことが大切です。 |