【Godotお勉強メモ】経過時間を表示するタイマーを作成する
はじめに
ほぼチュートリアルのおさらいですが、作業メモです。
経過時間を表示するタイマーを画面に表示させます。
Godot バージョン:4.1.3
前回のあらすじ
マウスホイールにあわせて状態を遷移させる処理を作りました。
今回やること
作業
下準備(シーン・ノードの作成)
今回の作業ではシーンツリーを以下のような構成にします。
新規に作成するのは、空のControlノードで作るHUDシーンと、Labelノードで作るElapsedTimeLabelです。
チュートリアルのときと違って、HUDシーンには直接処理を記述しないことにします。
準備ができたら、もうMainシーンとHUDシーンは触りません。
スクリプトを書く
ElapsedTimeLabelシーンにスクリプトをアタッチして、書いていきます。
extends Label var elapsed_time:int = 0 func _ready(): text = "00:00:00" anchor_top = 0 anchor_left = 0 offset_top = 0 offset_left = 0 scale = Vector2(1.5,1.5) # Timerインスタンスをシーンツリーに追加 var timer = Timer.new() timer.wait_time = 1.0 timer.autostart = true timer.one_shot = false add_child(timer) # timeoutシグナルを接続 timer.connect("timeout", Callable(self, "_on_timer_timeout")) func _on_timer_timeout(): elapsed_time += 1 var hours = elapsed_time / 3600 var minutes = (elapsed_time % 3600) / 60 var seconds = elapsed_time % 60 text = "%02d:%02d:%02d" % [hours, minutes, seconds]
今回やることは以上です。
これで画面左上に時間が表示されるようになりました。
TimerノードはGUIで設定せず、スクリプト内で作成するようにしました。
また、今回のようにElapsedTimeLabel専用のスクリプト内で定義すれば、ネーミングが一般的な名詞でも問題ない考えです。
おしまい
今回はあっという間に終わりました。
本題は次回なので、今回は導入回だったりします。