GUIのサイズ(高さ)の変更の仕方
緑茶まぜ 2014/12/13(Sat) 21:36
Reputeless 2014/12/13(Sat) 23:07
GUI ウィンドウの高さは GUI ウィンドウ内の Widget (ボタン、テキストなど)の配置によって自動的に決まります。
明示的に調節したい場合は、改行 Widget を使うか、GUI ウィンドウや Widget の Padding, Margin を変更します。
[A] 改行を使う方法
# include <Siv3D.hpp>
void Main()
{
Graphics::SetBackground(Color(160, 200, 100));
GUI gui(GUIStyle::Default);
gui.setTitle(L"タイトル");
gui.addln(L"text", GUIText::Create(L"終了しますか?"));
gui.add(L"yes", GUIButton::Create(L"はい"));
gui.add(L"no", GUIButton::Create(L"いいえ"));
gui.add(GUINewLine::Create());
gui.add(GUINewLine::Create());
gui.add(GUINewLine::Create());
gui.setCenter(Window::Center());
// GUI ボックスモデルを表示
gui.style.showBoxModel = true;
while (System::Update())
{
}
}
[B] Padding を変更する方法
# include <Siv3D.hpp>
void Main()
{
Graphics::SetBackground(Color(160, 200, 100));
GUI gui(GUIStyle::Default);
gui.setTitle(L"タイトル");
gui.addln(L"text", GUIText::Create(L"終了しますか?"));
gui.add(L"yes", GUIButton::Create(L"はい"));
gui.add(L"no", GUIButton::Create(L"いいえ"));
gui.setCenter(Window::Center());
// GUI ボックスモデルを表示
gui.style.showBoxModel = true;
while (System::Update())
{
if (Input::KeyA.pressed)
{
gui.style.padding.bottom = 50;
}
else
{
// GUI ウィンドウの Padding のデフォルトは 10px
gui.style.padding.bottom = 10;
}
if (Input::KeyB.pressed)
{
gui.text(L"text").style.padding.bottom = 50;
}
else
{
// Widget の Padding のデフォルトは 0px
gui.text(L"text").style.padding.bottom = 0;
}
}
}
Margin や Padding を調節することで、
https://twitter.com/Reputeless/status/521658918355738626
のように、Widget を任意の位置に配置できます。
なお、Widget の Padding には負の値を指定できません。