見出し画像

【ゲーム製作】ハァハァProgressBarの%表示を変えた(Godot4)

ProgressBarを初めて実装しようとしているのですが、下記のようにバーの上にデフォルトで%表記があります。

通常のProgressBar(色は変えてます)

「まあサクッと変更するプロパティあるんだろうな~」と思ってたら、見つけられませんでした。ウソでしょ・・・

というわけで生まれたのが以下のソースってワケ

extends ProgressBar

# カスタム表示用のプロパティ
var max_val: int
var current_val: int

# プロパティの初期化
func _ready():
	max_val = max_value
	current_val = value
	# %表示を消すための設定
	self.add_theme_color_override("font_color", Color(0, 0, 0, 0))
	queue_redraw() # 再描画をトリガーする

# 値変更時の処理(ソースかGUIでconnectしておく)
func _on_value_changed(value):
	current_val = int(value)
	queue_redraw() # 再描画をトリガーする

# 描画関数のオーバーライド
func _draw():
	var display_text = str(current_val) + "/" + str(max_val)
	var font = get_theme_default_font()
	var vct = get_rect().size
	var posi = Vector2((vct.x - font.get_string_size(display_text).x) / 2, (vct.y + font.get_ascent() - font.get_descent()) / 2)
	draw_string(font, posi, display_text, HORIZONTAL_ALIGNMENT_CENTER)

デフォルトの%表示を強引に消して、
その上から強引にお好きなフォーマットを書いています。

結果はよさげ


いいなと思ったら応援しよう!