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

UIの配置

Altseedでは、psdファイルを元に生成される画像パッケージを使用することで簡単にUIの配置ができます。

psdファイルから画像パッケージのデータを生成するには 画像パッケージジェネレーター を使用します。

基本

SS

C++


#include <Altseed.h>

// ImagePackageを用いてUIを配置するサンプル。
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("ImagePackageUI_Basic").c_str(), 640, 480, asd::EngineOption());

    // イメージパッケージを読み込む
    auto imagePackage = asd::Engine::GetGraphics()->CreateImagePackage(asd::ToAString("Data/ImagePackage/UI.aip").c_str());

    for (int i = 0; i < imagePackage->GetImageCount(); i++)
    {
        // テクスチャを取り出す
        auto texture = imagePackage->GetImage(i);
        auto area = imagePackage->GetImageArea(i);

        // テクスチャをオブジェクトとして追加する
        auto textureObject2D = std::make_shared<asd::TextureObject2D>();
        textureObject2D->SetTexture(texture);
        textureObject2D->SetPosition(asd::Vector2DF(area.X, area.Y));
        asd::Engine::AddObject2D(textureObject2D);
    }

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

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

    return 0;
}

C#


/// <summary>
/// ImagePackageを用いてUIを配置するサンプル。
/// </summary>
class ImagePackageUI_Basic
{
    public string Description
    {
        get { return "ImagePackageを用いてUIを配置するサンプルです。"; }
    }

    public string Title
    {
        get { return "ImagePackage"; }
    }

    public string ClassName
    {
        get { return "ImagePackageUI_Basic"; }
    }

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

        // イメージパッケージを読み込む
        asd.ImagePackage imagePackage = asd.Engine.Graphics.CreateImagePackage("Data/ImagePackage/UI.aip");

        for(int i = 0; i < imagePackage.ImageCount; i++)
        {
            // テクスチャを取り出す
            asd.Texture2D texture = imagePackage.GetImage(i);
            asd.RectI area = imagePackage.GetImageArea(i);

            // テクスチャをオブジェクトとして追加する
            asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
            textureObject2D.Texture = texture;
            textureObject2D.Position = new asd.Vector2DF(area.X, area.Y);
            asd.Engine.AddObject2D(textureObject2D);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }

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


Java

/**
 * ImagePackageを用いてUIを配置するサンプル。
*/
class ImagePackageUI_Basic 
{
    public java.lang.String getDescription() {
        return "ImagePackageを用いてUIを配置するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "ImagePackage";
    }
    public java.lang.String getClassName() {
        return "ImagePackageUI_Basic";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("ImagePackageUI_Basic", 640, 480, new asd.EngineOption());

        // イメージパッケージを読み込む
        asd.ImagePackage imagePackage = asd.Engine.getGraphics().CreateImagePackage("Data/ImagePackage/UI.aip");

        for(int i = 0; (i < imagePackage.getImageCount()); i++)
        {
            // テクスチャを取り出す
            asd.Texture2D texture = imagePackage.GetImage(i);
            asd.RectI area = imagePackage.GetImageArea(i);

            // テクスチャをオブジェクトとして追加する
            asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
            textureObject2D.setTexture(texture);
            textureObject2D.setPosition(new asd.Vector2DF(area.X, area.Y));
            asd.Engine.AddObject2D(textureObject2D);
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }


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

特定のレイヤーのアルファブレンドを変更

SS

C++


#include <Altseed.h>

// ImagePackageを用いてUIを配置して、特定の名前の画像のアルファブレンドの方法を変更するサンプル。
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("ImagePackageUI_AlphaBlend").c_str(), 640, 480, asd::EngineOption());

    // イメージパッケージを読み込む
    auto imagePackage = asd::Engine::GetGraphics()->CreateImagePackage(asd::ToAString("Data/ImagePackage/UI.aip").c_str());

    for (int i = 0; i < imagePackage->GetImageCount(); i++)
    {
        // テクスチャを取り出す
        auto texture = imagePackage->GetImage(i);
        auto area = imagePackage->GetImageArea(i);

        // テクスチャをオブジェクトとして追加する
        auto textureObject2D = std::make_shared<asd::TextureObject2D>();
        textureObject2D->SetTexture(texture);
        textureObject2D->SetPosition(asd::Vector2DF(area.X, area.Y));
        asd::Engine::AddObject2D(textureObject2D);

        // Background_Lightという名称の画像のアルファブレンドの方法を変更する。
        auto name = imagePackage->GetImageName(i);
        if (asd::astring(imagePackage->GetImageName(i)) == asd::ToAString("Background_Light"))
        {
            textureObject2D->SetAlphaBlendMode(asd::AlphaBlendMode::Add);
        }
    }

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

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

    return 0;
}

C#


/// <summary>
/// ImagePackageを用いてUIを配置して、特定の名前の画像のアルファブレンドの方法を変更するサンプル。
/// </summary>
class ImagePackageUI_AlphaBlend
{
    public string Description
    {
        get { return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像のアルファブレンドの方法を\n変更するサンプルです"; }
    }

    public string Title
    {
        get { return "ImagePackageとアルファブレンド"; }
    }

    public string ClassName
    {
        get { return "ImagePackageUI_AlphaBlend"; }
    }

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

        // イメージパッケージを読み込む
        asd.ImagePackage imagePackage = asd.Engine.Graphics.CreateImagePackage("Data/ImagePackage/UI.aip");

        for (int i = 0; i < imagePackage.ImageCount; i++)
        {
            // テクスチャを取り出す
            asd.Texture2D texture = imagePackage.GetImage(i);
            asd.RectI area = imagePackage.GetImageArea(i);

            // テクスチャをオブジェクトとして追加する
            asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
            textureObject2D.Texture = texture;
            textureObject2D.Position = new asd.Vector2DF(area.X, area.Y);
            asd.Engine.AddObject2D(textureObject2D);

            // Background_Lightという名称の画像のアルファブレンドの方法を変更する。
            if(imagePackage.GetImageName(i) == "Background_Light")
            {
                textureObject2D.AlphaBlend = asd.AlphaBlendMode.Add;
            }
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }

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


Java

/**
 * ImagePackageを用いてUIを配置して、特定の名前の画像のアルファブレンドの方法を変更するサンプル。
*/
class ImagePackageUI_AlphaBlend 
{
    public java.lang.String getDescription() {
        return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像のアルファブレンドの方法を\n変更するサンプルです";
    }
    public java.lang.String getTitle() {
        return "ImagePackageとアルファブレンド";
    }
    public java.lang.String getClassName() {
        return "ImagePackageUI_AlphaBlend";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("ImagePackageUI_AlphaBlend", 640, 480, new asd.EngineOption());

        // イメージパッケージを読み込む
        asd.ImagePackage imagePackage = asd.Engine.getGraphics().CreateImagePackage("Data/ImagePackage/UI.aip");

        for(int i = 0; (i < imagePackage.getImageCount()); i++)
        {
            // テクスチャを取り出す
            asd.Texture2D texture = imagePackage.GetImage(i);
            asd.RectI area = imagePackage.GetImageArea(i);

            // テクスチャをオブジェクトとして追加する
            asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
            textureObject2D.setTexture(texture);
            textureObject2D.setPosition(new asd.Vector2DF(area.X, area.Y));
            asd.Engine.AddObject2D(textureObject2D);

            // Background_Lightという名称の画像のアルファブレンドの方法を変更する。
            if((imagePackage.GetImageName(i).equals("Background_Light")))
            {
                textureObject2D.setAlphaBlend(asd.AlphaBlendMode.Add);
            }
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }


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

特定のレイヤーのみをアニメーション

SS

C++


#include <Altseed.h>

// ImagePackageを用いてUIを配置して、特定の名前の画像をアニメーションさせるサンプル。

class AlphaAnimationComponent 
    : public asd::Object2DComponent
{
    int time = 0;
    void OnUpdate() override
    {
        // アルファ値をsinカーブでアニメーションするようにする。
        auto alpha = (uint8_t) ((float) (sin(time / 20.0f) + 1.0f) / 2.0f * 255);
        auto owner = (asd::TextureObject2D*)GetOwner();
        owner->SetColor(asd::Color(255, 255, 255, alpha));
        time++;
    }
};

int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("ImagePackageUI_Component").c_str(), 640, 480, asd::EngineOption());

    // イメージパッケージを読み込む
    auto imagePackage = asd::Engine::GetGraphics()->CreateImagePackage(asd::ToAString("Data/ImagePackage/UI.aip").c_str());

    for (int i = 0; i < imagePackage->GetImageCount(); i++)
    {
        // テクスチャを取り出す
        auto texture = imagePackage->GetImage(i);
        auto area = imagePackage->GetImageArea(i);

        // テクスチャをオブジェクトとして追加する
        auto textureObject2D = std::make_shared<asd::TextureObject2D>();
        textureObject2D->SetTexture(texture);
        textureObject2D->SetPosition(asd::Vector2DF(area.X, area.Y));
        asd::Engine::AddObject2D(textureObject2D);

        // Background_Lightという名称の画像にコンポーネントを適用する。
        auto name = imagePackage->GetImageName(i);
        if (asd::astring(imagePackage->GetImageName(i)) == asd::ToAString("Background_Light"))
        {
            textureObject2D->SetAlphaBlendMode(asd::AlphaBlendMode::Add);
            textureObject2D->AddComponent(std::make_shared<AlphaAnimationComponent>(), asd::ToAString("AlphaAnimation"));
        }
    }

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

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

    return 0;
}

C#


class ImagePackageUI_Component_AlphaAnimationComponent : asd.Object2DComponent
{
    int time = 0;
    protected override void OnUpdate()
    {
        // アルファ値をsinカーブでアニメーションするようにする。
        var alpha = (int)((float)(System.Math.Sin(time / 20.0f) + 1.0f) / 2.0f * 255);
        var owner = (asd.TextureObject2D)Owner;
        owner.Color = new asd.Color(255, 255, 255, alpha);
        time++;
    }
}

/// <summary>
/// ImagePackageを用いてUIを配置して、特定の名前の画像をアニメーションさせるサンプル。
/// </summary>
class ImagePackageUI_Component
{
    public string Description
    {
        get { return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像を\nアニメーションさせるサンプル。"; }
    }

    public string Title
    {
        get { return "ImagePackageとアニメーション"; }
    }

    public string ClassName
    {
        get { return "ImagePackageUI_Component"; }
    }

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

        // イメージパッケージを読み込む
        asd.ImagePackage imagePackage = asd.Engine.Graphics.CreateImagePackage("Data/ImagePackage/UI.aip");

        for (int i = 0; i < imagePackage.ImageCount; i++)
        {
            // テクスチャを取り出す
            asd.Texture2D texture = imagePackage.GetImage(i);
            asd.RectI area = imagePackage.GetImageArea(i);

            // テクスチャをオブジェクトとして追加する
            asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
            textureObject2D.Texture = texture;
            textureObject2D.Position = new asd.Vector2DF(area.X, area.Y);
            asd.Engine.AddObject2D(textureObject2D);

            // Background_Lightという名称の画像にコンポーネントを適用する。
            if (imagePackage.GetImageName(i) == "Background_Light")
            {
                textureObject2D.AlphaBlend = asd.AlphaBlendMode.Add;
                textureObject2D.AddComponent(new ImagePackageUI_Component_AlphaAnimationComponent(), "AlphaAnimation");
            }
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }

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


Java

/**
 * ImagePackageを用いてUIを配置して、特定の名前の画像をアニメーションさせるサンプル。
*/
class ImagePackageUI_Component 
{
    public java.lang.String getDescription() {
        return "ImagePackageを用いてUIを配置し、その際に特定の名前の画像を\nアニメーションさせるサンプル。";
    }
    public java.lang.String getTitle() {
        return "ImagePackageとアニメーション";
    }
    public java.lang.String getClassName() {
        return "ImagePackageUI_Component";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("ImagePackageUI_Component", 640, 480, new asd.EngineOption());

        // イメージパッケージを読み込む
        asd.ImagePackage imagePackage = asd.Engine.getGraphics().CreateImagePackage("Data/ImagePackage/UI.aip");

        for(int i = 0; (i < imagePackage.getImageCount()); i++)
        {
            // テクスチャを取り出す
            asd.Texture2D texture = imagePackage.GetImage(i);
            asd.RectI area = imagePackage.GetImageArea(i);

            // テクスチャをオブジェクトとして追加する
            asd.TextureObject2D textureObject2D = new asd.TextureObject2D();
            textureObject2D.setTexture(texture);
            textureObject2D.setPosition(new asd.Vector2DF(area.X, area.Y));
            asd.Engine.AddObject2D(textureObject2D);

            // Background_Lightという名称の画像にコンポーネントを適用する。
            if((imagePackage.GetImageName(i).equals("Background_Light")))
            {
                textureObject2D.setAlphaBlend(asd.AlphaBlendMode.Add);
                textureObject2D.AddComponent(new ImagePackageUI_Component_AlphaAnimationComponent(), "AlphaAnimation");
            }
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while(asd.Engine.DoEvents())
        {
            // Altseedを更新する。
            asd.Engine.Update();
        }


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