表示するサンプルコードの言語を指定できます。

キーボードの入力状態の取得

AltseedでKeyboardを扱うには、Engineクラスが持つKeyboardプロパティを取得します。このKeyboardプロパティには現状のキーボードの入力状態が保存されているためキーを指定することによってその状態を取得することができます。

単一のキーが押されているか否かを取得

SS

C++


#include <Altseed.h>

/**
@brief  キーボードによる入力を取得するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("Keyboard_Basic").c_str(), 640, 480, asd::EngineOption());

    auto font = asd::Engine::GetGraphics()->CreateDynamicFont(asd::ToAString("").c_str(), 40, asd::Color(255, 255, 255, 255), 1, asd::Color(0, 0, 0, 255));

    // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
    auto keyStateText = std::make_shared<asd::TextObject2D>();
    keyStateText->SetPosition(asd::Vector2DF(10, 10));
    keyStateText->SetFont(font);
    asd::Engine::AddObject2D(keyStateText);

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {

        // キーボードのZキーの入力状態を取得する。
        auto zstate = asd::Engine::GetKeyboard()->GetKeyState(asd::Keys::Z);

        if (zstate == asd::KeyState::Free) // Zキーを離している状態。
        {
            keyStateText->SetText(asd::ToAString("Zキーを離しています。").c_str());
        }
        else if (zstate == asd::KeyState::Hold) // Zキーを押している状態。
        {
            keyStateText->SetText(asd::ToAString("Zキーを押しています。").c_str());
        }

        // Altseedを更新する。
        asd::Engine::Update();
    }

    //Altseedの終了処理をする。
    asd::Engine::Terminate();

    return 0;
}

C#

/// <summary>
/// キーボードによる入力を取得するサンプル。
/// </summary>
public class Keyboard_Basic :ISample
{
    public string Description
    {
        get { return "Zキーを押しているかどうかを調べ、結果を表示するサンプルです。"; }
    }
    public string Title
    {
        get { return "キーボード入力の基本"; }
    }
    public string ClassName
    {
        get { return "Keyboard_Basic"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_Basic", 640, 480, new asd.EngineOption());

        var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        var keyStateText = new asd.TextObject2D();
        keyStateText.Position = new asd.Vector2DF(10, 10);
        keyStateText.Font = font;
        asd.Engine.AddObject2D(keyStateText);

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // キーボードのZキーの入力状態を取得する。

            var zstate = asd.Engine.Keyboard.GetKeyState(asd.Keys.Z);

            if(zstate == asd.KeyState.Free) // Zキーを離している状態。
            {
                    keyStateText.Text = "Zキーを離しています。";
            }
            else if(zstate == asd.KeyState.Hold) // Zキーを押している状態。
            {
                    keyStateText.Text = "Zキーを押しています。";
            }

            // Altseedを更新する。
            asd.Engine.Update();

        }

        //Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

Java

/**
 * キーボードによる入力を取得するサンプル。
*/
public class Keyboard_Basic 
{
    public java.lang.String getDescription() {
        return "Zキーを押しているかどうかを調べ、結果を表示するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "キーボード入力の基本";
    }
    public java.lang.String getClassName() {
        return "Keyboard_Basic";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_Basic", 640, 480, new asd.EngineOption());

        asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        asd.TextObject2D keyStateText = new asd.TextObject2D();
        keyStateText.setPosition(new asd.Vector2DF(10, 10));
        keyStateText.setFont(font);
        asd.Engine.AddObject2D(keyStateText);

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // キーボードのZキーの入力状態を取得する。

            asd.KeyState zstate = asd.Engine.getKeyboard().GetKeyState(asd.Keys.Z);

            if((zstate == asd.KeyState.Free))
            {
                keyStateText.setText("Zキーを離しています。");
            }
            else
            {
                if((zstate == asd.KeyState.Hold))
                {
                    keyStateText.setText("Zキーを押しています。");
                }
            }

            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

単一のキーの詳しい入力状態を取得

SS

C++


#include <Altseed.h>

/**
@brief  キーボードの一つのキーの入力状態を取得するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("Keyboard_SingularKey").c_str(), 640, 480, asd::EngineOption());

    auto font = asd::Engine::GetGraphics()->CreateDynamicFont(asd::ToAString("").c_str(), 40, asd::Color(255, 255, 255, 255), 1, asd::Color(0, 0, 0, 255));

    // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
    auto keyStateText = std::make_shared<asd::TextObject2D>();
    keyStateText->SetPosition(asd::Vector2DF(10, 10));
    keyStateText->SetFont(font);
    asd::Engine::AddObject2D(keyStateText);

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        // キーボードのZキーの入力状態を取得する。
        auto zstate = asd::Engine::GetKeyboard()->GetKeyState(asd::Keys::Z);

        if (zstate == asd::KeyState::Free) // 前フレームと本フレームで非押下
        {
            keyStateText->SetText(asd::ToAString("Zキーを離しています。").c_str());
        }
        else if (zstate == asd::KeyState::Hold) // 前フレームと本フレームで押下
        {
            keyStateText->SetText(asd::ToAString("Zキーを押しています。").c_str());
        }
        else if (zstate == asd::KeyState::Release) // 前フレームで押下、本フレームで非押下
        {
            keyStateText->SetText(asd::ToAString("Zキーを離しました!").c_str());
        }
        else if (zstate == asd::KeyState::Push) // 前フレームで非押下、本フレームで押下
        {
            keyStateText->SetText(asd::ToAString("Zキーを押しました!").c_str());
        }

        // Altseedを更新する。
        asd::Engine::Update();
    }

    //Altseedの終了処理をする。
    asd::Engine::Terminate();

    return 0;
}

C#

/// <summary>
/// キーボードの一つのキーの入力状態を取得するサンプル。
/// </summary>
public class Keyboard_SingularKey
{
    public string Description
    {
        get { return "キーボードのキー入力状態を詳しく調べ、状態を表示するサンプルです。"; }
    }
    public string Title
    {
        get { return "キーボードの入力状態"; }
    }
    public string ClassName
    {
        get { return "Keyboard_SingularKey"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {   
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_SingularKey", 640, 480, new asd.EngineOption());

        var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        var keyStateText = new asd.TextObject2D();
        keyStateText.Position = new asd.Vector2DF(10, 10);
        keyStateText.Font = font;
        asd.Engine.AddObject2D(keyStateText);

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // キーボードのZキーの入力状態を取得する。

            var zstate = asd.Engine.Keyboard.GetKeyState(asd.Keys.Z);

            if(zstate == asd.KeyState.Free) // 前フレームと本フレームで非押下
            {
                keyStateText.Text = "Zキーを離しています。";
            }
            else if(zstate == asd.KeyState.Hold) // 前フレームと本フレームで押下
            {
                keyStateText.Text = "Zキーを押しています。";
            }
            else if(zstate == asd.KeyState.Release) // 前フレームで押下、本フレームで非押下
            {
                keyStateText.Text = "Zキーを離しました!";
            }
            else if(zstate == asd.KeyState.Push) // 前フレームで非押下、本フレームで押下
            {
                keyStateText.Text = "Zキーを押しました!";
            }

            // Altseedを更新する。
            asd.Engine.Update();

        }

        //Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

Java

/**
 * キーボードの一つのキーの入力状態を取得するサンプル。
*/
public class Keyboard_SingularKey 
{
    public java.lang.String getDescription() {
        return "キーボードのキー入力状態を詳しく調べ、状態を表示するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "キーボードの入力状態";
    }
    public java.lang.String getClassName() {
        return "Keyboard_SingularKey";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_SingularKey", 640, 480, new asd.EngineOption());

        asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        asd.TextObject2D keyStateText = new asd.TextObject2D();
        keyStateText.setPosition(new asd.Vector2DF(10, 10));
        keyStateText.setFont(font);
        asd.Engine.AddObject2D(keyStateText);

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // キーボードのZキーの入力状態を取得する。

            asd.KeyState zstate = asd.Engine.getKeyboard().GetKeyState(asd.Keys.Z);

            if((zstate == asd.KeyState.Free))
            {
                keyStateText.setText("Zキーを離しています。");
            }
            else
            {
                if((zstate == asd.KeyState.Hold))
                {
                    keyStateText.setText("Zキーを押しています。");
                }
                else
                {
                    if((zstate == asd.KeyState.Release))
                    {
                        keyStateText.setText("Zキーを離しました!");
                    }
                    else
                    {
                        if((zstate == asd.KeyState.Push))
                        {
                            keyStateText.setText("Zキーを押しました!");
                        }
                    }
                }
            }

            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

複数のキーの詳しい入力状態を取得

SS

C++


#include <Altseed.h>

/**
@brief  キーボードの複数のキーの入力状態を取得するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("Keyboard_PuralKeys").c_str(), 640, 480, asd::EngineOption());

    auto font = asd::Engine::GetGraphics()->CreateDynamicFont(asd::ToAString("").c_str(), 40, asd::Color(255, 255, 255, 255), 1, asd::Color(0, 0, 0, 255));

    // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
    auto keyStateText = std::make_shared<asd::TextObject2D>();
    keyStateText->SetPosition(asd::Vector2DF(10, 10));
    keyStateText->SetFont(font);
    asd::Engine::AddObject2D(keyStateText);

    // 入力チェックするキー一覧。(Z, X, C, V, B)
    std::vector<asd::Keys> keys;
    keys.push_back(asd::Keys::Z);
    keys.push_back(asd::Keys::X);
    keys.push_back(asd::Keys::C);
    keys.push_back(asd::Keys::V);
    keys.push_back(asd::Keys::B);

    //キーを文字列に変換するマップ。
    std::vector<std::string> keyStrs;
    keyStrs.push_back("Z");
    keyStrs.push_back("X");
    keyStrs.push_back("C");
    keyStrs.push_back("V");
    keyStrs.push_back("B");

    // Altseedのウインドウが閉じられていないか確認する。
    while (asd::Engine::DoEvents())
    {
        asd::astring displayStr = asd::ToAString("");

        //すべてのキーに対して入力状態を確認してから表示する。
        for (int i = 0; i < keys.size(); ++i)
        {
            std::string keystr = keyStrs[i];

            // キーボードのZキーの入力状態を取得する。
            asd::KeyState zstate = asd::Engine::GetKeyboard()->GetKeyState(keys[i]);

            if (zstate == asd::KeyState::Free) // 前フレームと本フレームで非押下
            {
                displayStr += asd::ToAString((keystr + "キーを離しています。").c_str());
            }
            else if (zstate == asd::KeyState::Hold) // 前フレームと本フレームで押下
            {
                displayStr += asd::ToAString((keystr + "キーを押しています。").c_str());
            }
            else if (zstate == asd::KeyState::Release) // 前フレームで押下、本フレームで非押下
            {
                displayStr += asd::ToAString((keystr + "キーを離しました!").c_str());
            }
            else if (zstate == asd::KeyState::Push) // 前フレームで非押下、本フレームで押下
            {
                displayStr += asd::ToAString((keystr + "キーを押しました!").c_str());
            }

            displayStr += asd::ToAString("\n");
        }

        // キー入力状態を示す文字列を更新する。
        keyStateText->SetText(displayStr.c_str());

        // Altseedを更新する。
        asd::Engine::Update();
    }

    //Altseedの終了処理をする。
    asd::Engine::Terminate();

    return 0;
}

C#

using System.Collections.Generic;
/// <summary>
/// キーボードの複数のキーの入力状態を取得するサンプル。
/// </summary>
public class Keyboard_PuralKeys
{
    public string Description
    {
        get { return "キーボードの複数のキーの入力状態を調べ、表示するサンプルです。"; }
    }
    public string Title
    {
        get { return "複数のキーの入力状態"; }
    }
    public string ClassName
    {
        get { return "Keyboard_PuralKeys"; }
    }

    [System.STAThread]
    static void Main(string[] args)
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());

        var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        var keyStateText = new asd.TextObject2D();
        keyStateText.Position = new asd.Vector2DF(10, 10);
        keyStateText.Font = font;
        asd.Engine.AddObject2D(keyStateText);

        // 入力チェックするキー一覧。(Z, X, C, V, B)
        List<asd.Keys> keys = new List<asd.Keys>();
        keys.Add(asd.Keys.Z);
        keys.Add(asd.Keys.X);
        keys.Add(asd.Keys.C);
        keys.Add(asd.Keys.V);
        keys.Add(asd.Keys.B);

        //キーの文字列表現。
        List<string> keyStrs = new List<string>();
        keyStrs.Add("Z");
        keyStrs.Add("X");
        keyStrs.Add("C");
        keyStrs.Add("V");
        keyStrs.Add("B");

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            string displayStr = "";

            //すべてのキーに対して入力状態を確認してから表示する。
            for (int i = 0; i < keys.Count; i++)
            {
                string keystr = keyStrs[i];

                // キーボードのZキーの入力状態を取得する。
                asd.KeyState state = asd.Engine.Keyboard.GetKeyState(keys[i]);

                if (state == asd.KeyState.Free) // 前フレームと本フレームで非押下
                {
                    displayStr += (keystr + "キーを離しています。");
                }
                else if (state == asd.KeyState.Hold) // 前フレームと本フレームで押下
                {
                    displayStr += (keystr + "キーを押しています。");
                }
                else if (state == asd.KeyState.Release) // 前フレームで押下、本フレームで非押下
                {
                    displayStr += (keystr + "キーを離しました!");
                }
                else if (state == asd.KeyState.Push) // 前フレームで非押下、本フレームで押下
                {
                    displayStr += (keystr + "キーを押しました!");
                }

                displayStr += "\n";
            }

            // キー入力状態を示す文字列を更新する。
            keyStateText.Text = displayStr;

            // Altseedを更新する。
            asd.Engine.Update();

        }

        //Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}

Java

/**
 * キーボードの複数のキーの入力状態を取得するサンプル。
*/
public class Keyboard_PuralKeys 
{
    public java.lang.String getDescription() {
        return "キーボードの複数のキーの入力状態を調べ、表示するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "複数のキーの入力状態";
    }
    public java.lang.String getClassName() {
        return "Keyboard_PuralKeys";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());

        asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));

        // キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
        asd.TextObject2D keyStateText = new asd.TextObject2D();
        keyStateText.setPosition(new asd.Vector2DF(10, 10));
        keyStateText.setFont(font);
        asd.Engine.AddObject2D(keyStateText);

        // 入力チェックするキー一覧。(Z, X, C, V, B)
        java.util.ArrayList<asd.Keys> keys = new java.util.ArrayList<asd.Keys>();
        keys.add(asd.Keys.Z);
        keys.add(asd.Keys.X);
        keys.add(asd.Keys.C);
        keys.add(asd.Keys.V);
        keys.add(asd.Keys.B);

        // キーの文字列表現。
        java.util.ArrayList<java.lang.String> keyStrs = new java.util.ArrayList<java.lang.String>();
        keyStrs.add("Z");
        keyStrs.add("X");
        keyStrs.add("C");
        keyStrs.add("V");
        keyStrs.add("B");

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            java.lang.String displayStr = "";

            // すべてのキーに対して入力状態を確認してから表示する。
            for(int i = 0; (i < keys.size()); i++)
            {
                java.lang.String keystr = keyStrs.get(i);

                // キーボードのZキーの入力状態を取得する。
                asd.KeyState state = asd.Engine.getKeyboard().GetKeyState(keys.get(i));

                if((state == asd.KeyState.Free))
                {
                    displayStr += (keystr + "キーを離しています。");
                }
                else
                {
                    if((state == asd.KeyState.Hold))
                    {
                        displayStr += (keystr + "キーを押しています。");
                    }
                    else
                    {
                        if((state == asd.KeyState.Release))
                        {
                            displayStr += (keystr + "キーを離しました!");
                        }
                        else
                        {
                            if((state == asd.KeyState.Push))
                            {
                                displayStr += (keystr + "キーを押しました!");
                            }
                        }
                    }
                }

                displayStr += "\n";
            }

            // キー入力状態を示す文字列を更新する。
            keyStateText.setText(displayStr);

            // Altseedを更新する。
            asd.Engine.Update();

        }


        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
}