Skip to content

plugin ui

Xeltica edited this page Apr 11, 2019 · 4 revisions

DotFeather.UI

DotFeather.UI は、DotFeather ゲームウィンドウに UI を表示する為のツールキットを含むプラグインです。

ウィジェット

DotFeather.UI では、 UI を構成するボタンやテキストボックスといった要素をウィジェットとして表現します。

UIWidget 抽象クラスは IDrawable インターフェイスを実装している、全てのウィジェットに継承されるクラスです。

上記からわかるようにウィジェットは Drawable である為、コンテナーに直接追加することができます。

各ウィジェットはユーザーからのインタラクションを受けて動作します。

using DotFeather;
using DotFeather.UI;

public class Example : GameBase
{
    // コンストラクタ略

    private UIButton button;
    private UILabel label;
    private UITextBox textBox;

    protected override void OnLoad(object sender, EventArgs e)
    {

        label = new Label();
        textBox = new TextBox();
        button = new Button("表示");

        textBox.Location = new Vector(16, 16);
        textBox.Size = new Vector(16, 128);
        button.Location = new Vector(152, 16);
        label.Location = new Vector(16, 48);

        // EventHandler を使う方式
        button.Click += (sender, e) => 
        {
            label.Text = textBox.Text;
        };

        Root.Add(label);
        Root.Add(textBox);
        Root.Add(button);
    }

    protected override void OnUpdate(object sender, DFEventArgs e)
    {
        // プロパティを取得する方式
        switch (button.Phase)
        {
            case ButtonPhase.First:
                Console.WriteLine("MouseDown");
                break;
            case ButtonPhase.Last:
                Console.WriteLine("MouseUp");
                break;
        }
    }

}
Clone this wiki locally