![見出し画像](https://assets.st-note.com/production/uploads/images/34679340/rectangle_large_type_2_0158f730d9e23f21f7053772b1681eed.png?width=1200)
Godotをはじめよう
Gutterfly Farmです。ごきげんよう人類。
先日、最初にリリースしたゲームを3年ぶりにアップデートしたところです。控えめに言って最悪な気分です。何もかも手作業で制御するには、この作品は大きくなりすぎました。
いまは今後の戦略を考えつつ、Godot(ゴドー?、ゴードー?)を学習しているところです。いま海外で人気上昇中のゲームエンジンです。Godotドキュメントは未訳のところも目立ちますが、だいたい日本語で読めます。
この不安定な状況でどこまで開発を続けられるかわかりませんが、いずれはより高度な環境に移行しなければいけません。残念ながらGodotドキュメントは読みやすいとは言えませんが、なんとか「ボタンを押すと文字が変わる」ところまでは再現できたので、ここまでの学習内容を共有したいと思います。
今回はこれを作ります。
ノードを追加する
画面の+ボタン、またはCtr+Aを押して〈Panel〉〈Label〉〈Button〉ノードを用意する。このときノードの階層が↓とまったく同じになるように注意。
パネルやボタンの大きさは2Dエディタで調整。
テキストはInspecterのTextから入力。
Panelにスクリプトをアタッチ
Panelを右クリック>Attach Scriptを選ぶ。
GDScriptを選んでCreate(自分の環境ではすでにスクリプトがあるのでLoadになっている)を押す。
これ以降、ノードの横に出てきた巻物?アイコンをクリックするとスクリプトエディタが開きます。
ボタンが押されたときのシグナルを接続
Buttonノードを選択して、Node>Signals>pressedをダブルクリック。
そのままConnect。
スクリプトに_on_Button_pressedが追加され、緑のアイコンが見える。
スクリプトにこれを追加。
func _on_Button_pressed():
get_node("Label").text = "HELLO!"
"Hello"のところは好きに変えていい。再生ボタン、またはF6を押してテスト。
できました。
気になる点
公式ドキュメントではスクリプトからpressedシグナルをメソッドに接続する方法が解説されていますが、そのとおりにコピペしてもエラーになります。
結局、自分のエディタではこう。
extends Panel
func _ready():
pass
func _on_Button_pressed():
get_node("Label").text = "HELLO!"
_ready()には触れず。これでちゃんと動いているように見えるのだけど…問題があるのなら教えてほしい。
この記事が気に入ったらサポートをしてみませんか?