GUIのサイズ(高さ)の変更の仕方
緑茶まぜ  2014/12/13(Sat) 21:36
GUIの高さを設定する方法を、誰かご存じないでしょうか。
GUIの幅は、(GUIの名前).style.widthで設定できることが分かりました。
しかし、高さを設定するメンバ(height?)がありません。
リファレンスの方には「GUI ウィンドウの位置と大きさ」の項目があるようですが、まだ準備中のようです。
GUIウィンドウの高さの変え方を、どなたか教えてくださいませんか
記事編集
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 には負の値を指定できません。
編集
緑茶まぜ  2014/12/13(Sat) 23:34
ありがとうございます。無事思ったとおりの高さに設定できました。
お忙しいところ申し訳ありませんでした
編集
件名
Re: GUIのサイズ(高さ)の変更の仕方
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -