見出し画像

【Godot 3.2】画面に文字を表示させる

ごきげんよう。Gutterfly Farmです。


現代のゲームエンジンのチュートリアルはとても充実していますが、残念ながらすべての人に最適化されているわけではありません。だいたい最初に謎のシューティングゲームやブロック崩しの作り方を学び、しかし結局はそのすべてを忘れます。

Godotのチュートリアルをいくつか試した?では、私たちが作りたい美しいText-Basedなゲームに必要なものはどこに書いてあるのか?

今回は(コンソールではなく、ユーザーに見える形で)画面に文字を写す方法を学びます。

プロジェクトの作成、ノードについての最低限のことはGodot Documentをどうぞ。


Labelを使って文字を表示する

基本的にはLabelノードを使います。

画像1

この後で紹介する記事では触れられていないのですが、ノードの構成は図の通りにしてみてください。Controlノードがあり、Labelはその子になります(スクリプトをアタッチするのもLabelではなくその親です)。

最低限この2ノードを作成したらInspecterからLabelのtextを編集できます。これで静的に文字を表示することができました。

画像3

画像4

フォントを変えてみる

フォントファイルを自由にLoadすることもできます。

画像2

現在のGodotはFileSystemにドラッグ/ドロップするだけで画像、フォント、音声などを追加できます。試しにMaknas-4-Flat.otfを入れてみます。

LabelのInspecterからCustom Fontを探して…

画像5

Empty > New DynamicFontを選択。もう1度クリックしてFont > Font DataからLoadを選択します。

画像6

(文章じゃ説明しづらいので、実際にエディタを操作しながら読んでほしい…)

無事にフォントを読み込みました。

画像7

色を変えたり、大きさを変えたり、実験してみてください。

テキストを動的に入れ替える

ラベルの文字を操作するには、Controlノードにスクリプトをアタッチします。

画像8

スクリプトエディタを開き、_ready()関数の中身を書き換えます。これはノードのtextプロパティを使って中身を置き換えるものです。

func _ready():
	$Label.text = "New Text"

保存してシーンを再生(F6)を押すとラベルの文字が代入したものに変わっています。

画像9

変数を使ってみたり。

var a = 2


func _ready():
	$Label.text = str(a)

Timerノードを追加するとこういうこともできます。

var counter = 0


func _ready():
	$Label.text = str(counter)

func _on_Timer_timeout():
	counter += 1
	$Label.text = str(counter)

配列を出力してみたり。

var animals = ["cat", "human", "dog"]

func _ready():
	$Label.text = animals[2]

公式ドキュメントのUI関連のところと組み合わせれば、もっといろいろなことができるはず。


合わせて読みたい

子供向けプログラミング教室を主催するKids Can Codeのページ。全部英語だけど、公式ドキュメントと合わせて必ず目を通しておきたい。


Godot公式言語であるGDScriptはPythonに寄せて作られたようで、海外では「ほぼPython」と言う人までいます。初めてプログラミングに触れる人はProgateのPythonコースをやっておくといいかもしれません。



アップデートした直後だけど、GWFも流行りのゲームエンジンに乗せ換えたいものです。


この記事が気に入ったらサポートをしてみませんか?