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

文字の描画

Altseedで文字を描画するにはTextObject2Dという文字の描画専用のオブジェクトのクラスを使用します。

また、文字の表示に必要なフォントデータを生成するには フォントジェネレーター を使用します。

単純な文字の描画

SS

C++


#include <Base.h>

/**
@brief  文字列を表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(u"TextObject2D_Basic", 640, 480, asd::EngineOption());

    {
        // フォントを生成する。
        auto font = asd::Engine::GetGraphics()->CreateFont(u"Data/Font/Font1.aff");

        // 文字描画オブジェクトを生成する
        auto obj = std::make_shared<asd::TextObject2D>();

        // 描画に使うフォントを設定する。
        obj->SetFont(font);

        // 描画位置を指定する。
        obj->SetPosition(asd::Vector2DF(100, 100));

        // 描画する文字列を指定する。
        obj->SetText(u"普通の文字列描画");

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd::Engine::AddObject2D(obj);
    }

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

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// 文字列を表示するサンプル。
/// </summary>
class TextObject2D_Basic
{
    public string Description
    {
        get { return "文字列を描画するサンプルです。"; }
    }
    public string Title
    {
        get { return "文字列の描画"; }
    }
    public string ClassName
    {
        get { return "TextObject2D_Basic"; }
    }

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

        {
            // フォントを生成する。
            var font = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(100, 100);

            // 描画する文字列を指定する。
            obj.Text = "普通の文字列描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);
        }

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

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

Java

/**
 * 文字列を表示するサンプル。
*/
class TextObject2D_Basic 
{
    public java.lang.String getDescription() {
        return "文字列を描画するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "文字列の描画";
    }
    public java.lang.String getClassName() {
        return "TextObject2D_Basic";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Basic", 640, 480, new asd.EngineOption());

        // フォントを生成する。
        asd.Font font = asd.Engine.getGraphics().CreateFont("Data/Font/Font1.aff");

        // 文字描画オブジェクトを生成する。
        asd.TextObject2D obj = new asd.TextObject2D();

        // 描画に使うフォントを設定する。
        obj.setFont(font);

        // 描画位置を指定する。
        obj.setPosition(new asd.Vector2DF(100, 100));

        // 描画する文字列を指定する。
        obj.setText("普通の文字列描画");

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd.Engine.AddObject2D(obj);

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


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

文字を回転させて描画

SS

C++


#include <Base.h>

/**
@brief  文字列を回転させて表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("TextObject2D_Rotate").c_str(), 640, 480, asd::EngineOption());

    {
        // フォントと文字列描画オブジェクトの設定を行う。
        auto edgeFont = asd::Engine::GetGraphics()->CreateFont(asd::ToAString("Data/Font/Font1.aff").c_str());
        auto edgeObj = std::make_shared<asd::TextObject2D>();
        edgeObj->SetFont(edgeFont);
        edgeObj->SetPosition(asd::Vector2DF(100, 100));

        //回転角と描画する文字列を設定する。
        edgeObj->SetAngle(30);
        edgeObj->SetText(asd::ToAString("文字列の回転描画").c_str());

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd::Engine::AddObject2D(edgeObj);
    }

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

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// 文字列を回転させて表示するサンプル。
/// </summary>
class TextObject2D_Rotate
{
    public string Description
    {
        get { return "文字列を回転させて描画するサンプルです。"; }
    }
    public string Title
    {
        get { return "文字列の回転"; }
    }
    public string ClassName
    {
        get { return "TextObject2D_Rotate"; }
    }

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

        {
            // フォントと文字列描画オブジェクトの設定を行う。
            var edgeFont = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");
            var edgeObj = new asd.TextObject2D();
            edgeObj.Font = edgeFont;
            edgeObj.Position = new asd.Vector2DF(100, 100);

            //回転角と描画する文字列を設定する。
            edgeObj.Angle = 30;
            edgeObj.Text = "文字列の回転描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(edgeObj);
        }

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

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

Java

/**
 * 文字列を回転させて表示するサンプル。
*/
class TextObject2D_Rotate 
{
    public java.lang.String getDescription() {
        return "文字列を回転させて描画するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "文字列の回転";
    }
    public java.lang.String getClassName() {
        return "TextObject2D_Rotate";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Rotate", 640, 480, new asd.EngineOption());

        // フォントと文字列描画オブジェクトの設定を行う。
        asd.Font edgeFont = asd.Engine.getGraphics().CreateFont("Data/Font/Font1.aff");
        asd.TextObject2D edgeObj = new asd.TextObject2D();
        edgeObj.setFont(edgeFont);
        edgeObj.setPosition(new asd.Vector2DF(100, 100));

        // 回転角と描画する文字列を設定する。
        edgeObj.setAngle(30);
        edgeObj.setText("文字列の回転描画");

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd.Engine.AddObject2D(edgeObj);

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


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

文字を回転させた時の縁を滑らかにして描画

SS

C++


#include <Base.h>

/**
@brief  文字列をギザギザを防いで回転させて表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("TextObject2D_Filtered").c_str(), 640, 480, asd::EngineOption());

    {
        // フォントと文字描画オブジェクトの設定を行う。
        auto edgeFont = asd::Engine::GetGraphics()->CreateFont(asd::ToAString("Data/Font/Font1.aff").c_str());
        auto edgeObj = std::make_shared<asd::TextObject2D>();
        edgeObj->SetFont(edgeFont);
        edgeObj->SetPosition(asd::Vector2DF(100, 100));

        // 回転角を設定する。
        edgeObj->SetAngle(30);

        // 描画のフィルタを線形補間にすることによって、描画時に境界がギザギザにならないように設定する。
        edgeObj->SetTextureFilterType(asd::TextureFilterType::Linear);

        edgeObj->SetText(asd::ToAString("ギザギザをなくした文字列の描画").c_str());

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd::Engine::AddObject2D(edgeObj);
    }

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

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// 文字列をギザギザを防いで回転させて表示するサンプル。
/// </summary>
class TextObject2D_Filtered
{
    public string Description
    {
        get { return "文字列の回転をしたときにギザギザが発生するのを防ぐ機能を使ったサンプルです。"; }
    }
    public string Title
    {
        get { return "回転した文字列の滑らかな描画"; }
    }
    public string ClassName
    {
        get { return "TextObject2D_Filtered"; }
    }

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


        {
            // フォントと文字描画オブジェクトの設定を行う。
            var edgeFont = asd.Engine.Graphics.CreateFont("Data/Font/Font1.aff");
            var edgeObj = new asd.TextObject2D();
            edgeObj.Font = edgeFont;
            edgeObj.Position = new asd.Vector2DF(100, 100);

            // 回転角を設定する。
            edgeObj.Angle = 30;

            // 描画のフィルタを線形補間にすることによって、描画時に境界がギザギザにならないように設定する。
            edgeObj.TextureFilterType = asd.TextureFilterType.Linear;

            edgeObj.Text = "ギザギザをなくした文字列の描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(edgeObj);
        }

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

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

Java

/**
 * 文字列をギザギザを防いで回転させて表示するサンプル。
*/
class TextObject2D_Filtered 
{
    public java.lang.String getDescription() {
        return "文字列の回転をしたときにギザギザが発生するのを防ぐ機能を使ったサンプルです。";
    }
    public java.lang.String getTitle() {
        return "回転した文字列の滑らかな描画";
    }
    public java.lang.String getClassName() {
        return "TextObject2D_Filtered";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Filter", 640, 480, new asd.EngineOption());


        // フォントと文字描画オブジェクトの設定を行う。
        asd.Font edgeFont = asd.Engine.getGraphics().CreateFont("Data/Font/Font1.aff");
        asd.TextObject2D edgeObj = new asd.TextObject2D();
        edgeObj.setFont(edgeFont);
        edgeObj.setPosition(new asd.Vector2DF(100, 100));

        // 回転角を設定する。
        edgeObj.setAngle(30);

        // 描画のフィルタを線形補間にすることによって、描画時に境界がギザギザにならないように設定する。
        edgeObj.setTextureFilterType(asd.TextureFilterType.Linear);

        edgeObj.setText("ギザギザをなくした文字列の描画");

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd.Engine.AddObject2D(edgeObj);

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


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

動的フォントによる文字の描画

SS

C++


#include <Base.h>

/**
@brief  動的フォントを用いて文字列を表示するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(u"TextObject2D_DynamicFont", 640, 480, asd::EngineOption());

    {
        // 動的フォントを生成する。
        auto font = asd::Engine::GetGraphics()->CreateDynamicFont(u"", 35, asd::Color(255, 0, 0, 255), 1, asd::Color(255, 255, 255, 255));

        // TextObject2Dを生成する
        auto obj = std::make_shared<asd::TextObject2D>();

        // 描画に使うフォントを設定する。
        obj->SetFont(font);

        // 描画位置を指定する。
        obj->SetPosition(asd::Vector2DF(100, 100));

        // 描画する文字列を指定する。
        obj->SetText(u"動的フォントによる文字列描画");

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd::Engine::AddObject2D(obj);
    }

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

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// 文字列を表示するサンプル。
/// </summary>
class TextObject2D_DynamicFont
{
    public string Description
    {
        get { return "フォントをプログラム実行中にに準備して、そのフォントで文字列を描画するサンプルです。"; }
    }
    public string Title
    {
        get { return "フォントの動的生成"; }
    }
    public string ClassName
    {
        get { return "TextObject2D_DynamicFont"; }
    }

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

        {
            // 動的フォントを生成する。
            var font = asd.Engine.Graphics.CreateDynamicFont("", 35, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            // 描画位置を指定する。
            obj.Position = new asd.Vector2DF(100, 100);

            // 描画する文字列を指定する。
            obj.Text = "動的フォントによる文字列描画";

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);
        }

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

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

Java

/**
 * 文字列を表示するサンプル。
*/
class TextObject2D_DynamicFont 
{
    public java.lang.String getDescription() {
        return "フォントをプログラム実行中にに準備して、そのフォントで文字列を描画するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "フォントの動的生成";
    }
    public java.lang.String getClassName() {
        return "TextObject2D_DynamicFont";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_DynamicFont", 640, 480, new asd.EngineOption());

        // 動的フォントを生成する。
        asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 35, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

        // 文字描画オブジェクトを生成する。
        asd.TextObject2D obj = new asd.TextObject2D();

        // 描画に使うフォントを設定する。
        obj.setFont(font);

        // 描画位置を指定する。
        obj.setPosition(new asd.Vector2DF(100, 100));

        // 描画する文字列を指定する。
        obj.setText("動的フォントによる文字列描画");

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd.Engine.AddObject2D(obj);

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


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

中央揃えの文字の描画

SS

C++


#include <Altseed.h>

/**
@brief  文字列を中央揃えで描画するサンプル
*/

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

    // フォントを生成する。
    auto font = asd::Engine::GetGraphics()->CreateDynamicFont(u"", 35, asd::Color(255, 0, 0, 255), 1, asd::Color(255, 255, 255, 255));

    // 文字描画オブジェクトを生成する。
    auto obj = std::make_shared<asd::TextObject2D>();

    // 描画に使うフォントを設定する。
    obj->SetFont(font);

    //描画する文字列を設定する。
    auto str = u"中央揃えサンプル";
    obj->SetText(str);

    //文字列を描画したときの縦横の大きさを取得する。
    auto size = font->CalcTextureSize(str, asd::WritingDirection::Horizontal);

    // 描画位置を指定する。
    auto pos = asd::Vector2DF(asd::Engine::GetWindowSize().X - size.X, asd::Engine::GetWindowSize().Y - size.Y);
    obj->SetPosition(pos / 2.0f);

    // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
    asd::Engine::AddObject2D(obj);


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

    // Altseedを終了する。
    asd::Engine::Terminate();
}

C#


/// <summary>
/// 文字列を中央揃えで描画するサンプル
/// </summary>
class TextObject2D_Centering
{
    public string Description
    {
        get { return "文字列を中央揃えで描画するサンプルです。"; }
    }
    public string Title
    {
        get { return "文字列の中央揃え"; }
    }
    public string ClassName
    {
        get { return "TextObject2D_Centering"; }
    }

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

            //フォントを生成する。
            var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

            // 文字描画オブジェクトを生成する。
            var obj = new asd.TextObject2D();

            // 描画に使うフォントを設定する。
            obj.Font = font;

            //描画する文字列を設定する。
            var str = "中央揃えサンプル";
            obj.Text = str;

            //文字列を描画したときの縦横の大きさを取得する。
            var size = font.CalcTextureSize(str, asd.WritingDirection.Horizontal);

            // 描画位置を指定する。(画面中心が基準)
            var pos = new asd.Vector2DF(asd.Engine.WindowSize.X - size.X, asd.Engine.WindowSize.Y - size.Y);
            obj.Position = pos / 2.0f;

            // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
            asd.Engine.AddObject2D(obj);

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

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

Java

/**
 * 文字列を中央揃えで描画するサンプル
*/
class TextObject2D_Centering 
{
    public java.lang.String getDescription() {
        return "文字列を中央揃えで描画するサンプルです。";
    }
    public java.lang.String getTitle() {
        return "文字列の中央揃え";
    }
    public java.lang.String getClassName() {
        return "TextObject2D_Centering";
    }
    public static void main(String args[])
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("TextObject2D_Centering", 640, 480, new asd.EngineOption());

        // フォントを生成する。
        asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 0, 0, 255), 1, new asd.Color(255, 255, 255, 255));

        // 文字描画オブジェクトを生成する。
        asd.TextObject2D obj = new asd.TextObject2D();

        // 描画に使うフォントを設定する。
        obj.setFont(font);

        // 描画する文字列を設定する。
        java.lang.String str = "中央揃えサンプル";
        obj.setText(str);

        // 文字列を描画したときの縦横の大きさを取得する。
        asd.Vector2DI size = font.CalcTextureSize(str, asd.WritingDirection.Horizontal);

        // 描画位置を指定する。(画面中心が基準)
        asd.Vector2DF pos = new asd.Vector2DF((asd.Engine.getWindowSize().X - size.X), (asd.Engine.getWindowSize().Y - size.Y));
        obj.setPosition(asd.Vector2DF.DivideByScalar(pos, 2.0f));

        // 文字描画オブジェクトのインスタンスをエンジンへ追加する。
        asd.Engine.AddObject2D(obj);

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


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