0
0

More than 1 year has passed since last update.

【Godot 4.0】スマホ3Dゲームを作るための勉強 その22 ゲームシステムを作る その7 PopupPanelをデザインする

Posted at

 ゲームエンジンGodot4.0で3Dスマホゲームを作りたいと思いますが、その前にお勉強しています。
 2023/3/1にstable版がリリースされました。
Godot_v4.0-stable_win64.exe.zipを使用しています。

目的

 ゲームシステムをつくっていきます。
 設定仮面のデザインを修正します。

ベースプロジェクト

 下記で作成したプロジェクトをベースに機能追加をします。
 【Godot 4.0】スマホ3Dゲームを作るための勉強 その21 ゲームシステムを作る その6 設定画面をPopupPanelで作成する
 https://qiita.com/FootInGlow/items/3253204d9952cff4acfd

 github(Godotのプロジェクトマネージャーからインポートして利用できます)
 https://github.com/footinglow/Godot4/tree/main/02_study/S21_GameSystem_006

設定仮面のデザインを修正

 テスト用とはいえ残念過ぎるので、体裁を整えたいと思います。
 スクリーンショット (107).png

中央に表示する

 VBoxContainerを選択して、ビューメニューの右のアイコンをクリックして、「中央」アイコンをクリックします。
スクリーンショット (113).png

マージンをとる

 VBoxContainerを利用して、3つのコントロールを縦に並べていますが、くっつきすぎているので余白をつくります。
 VBoxContainerと3つのコントロールの間にMarginContainerを挟むようにすると、隙間を調整することができます。

 VBoxContainerを右クリックして、子ノードを追加から「MarginContainer」を追加します。
 MarginContainerにLabelをドラッグして子ノードにします。
 MarginContainerはVBoxContainerの下にドラッグします。
 スクリーンショット (111).png
MarginContainerを選択した状態で、インスペクタのControl/Theme Overrides/Constantsの「Margin Top」と「Margin Bottom」にチェックをいれて、それぞれ10を設定します。
スクリーンショット (115).png
Labelの下に少し隙間ができました。
スクリーンショット (116).png

 VBoxContainerを右クリックして子ノードを追加から「MarginContainer」をふたつ追加します。
 Labelと同様に、HSliderとButtonもそれぞれMarginContainer2とMarginContainer3の子ノードにします。
 Margin Top/Margin Bottomにチェックを入れて、値も同様(10)に設定します。
スクリーンショット (117).png

スクリプトを修正する

 Label、HSliderの階層を変更したので、GDScriptも忘れずに変更します。

 res://settings_popup_panel.gdを開きます。

extends PopupPanel

func open():
	get_tree().paused = true
	popup_centered()

func _on_h_slider_drag_ended(value_changed):
	$ControlBaseSize/VBoxContainer/MarginContainer/Label.text = "発射間隔 %.1f秒" % $ControlBaseSize/VBoxContainer/MarginContainer2/HSlider.value

func _on_button_pressed():
	hide()

func _on_popup_hide():
	get_tree().paused = false

Labelは間に「MarginContainer」が入りました。
変更前 :\$ControlBaseSize/VBoxContainer/Label.text
変更後 :\$ControlBaseSize/VBoxContainer/MarginContainer/Label.text

HSliderは間にMarginContainer2が入りました。
変更前:\$ControlBaseSize/VBoxContainer/HSlider.valu
変更後:\$ControlBaseSize/VBoxContainer/MarginContainer2/HSlider.valu

Panelの色を変更してふちどりします。

 SettingsPopupPanelを選択して、インスペクタのWindow/Theme Orverrides/Styles/Panelの<空>をクリックして、「新規StyleBoxFlat」を設定します。
 スクリーンショット (118).png
 「StyleBoxFlat」をクリックして詳細設定を表示します。
スクリーンショット (120).png
 いろいろ変更できそうです。

Panelの色を変更する

 BG Colorの右の色をクリックするとカラーピッカーで色を選択できます。
スクリーンショット (123).png

縁取りする

 Border Widthの数字を0から変更するとピクセル単位で縁をつくることができます。
 Left/Top/Right/Bottomにそれぞれ10を設定しました。
 またBorder/Colorもカラーピッカーで変更できます。(R,B,G)=(140,80,50)
 Blendもオンにしました。
 スクリーンショット (125).png

縁を丸くする

 Corner Radiusを設定すると縁を丸くすることができます。
 Top Left/Top Right/Bottom Right/Bottom Leftそれぞれ30pxを設定しました。
 スクリーンショット (126).png

 実行します。
 最初より良くなったでしょうか?

スクリーンショット (127).png

 以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0