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

図形オブジェクト2D (GeometryObject2D)

概要

オブジェクト2Dクラスを拡張し、図形クラスを持った上でそれを描画できる2D描画オブジェクトです。 下の図のように、描画する図形にテクスチャを合成することも可能です。

図形オブジェクト2D

具体的には、Shapeプロパティに描画したい図形を設定すると、その形状の情報をもとに図形を描画します。

また、図形が線分以外の形状の時は、指定したテクスチャを図形に合成することが可能です。

主なメソッド

なし

主なプロパティ

名称 説明
Shape 描画する図形のハンドル
Texture 描画する2Dテクスチャのハンドル
AlphaBlendMode 図形描画の際に適用されるアルファブレンドの種類
CenterPosition 図形に適用する変換(拡大、回転、移動)の基準位置(親から見た相対座標にて設定)
Color 図形描画の際の合成色のRGBA値を0~255の間で指定(Aの値を255未満にすると透明になる。)
DrawingPriority 描画の優先順位
TextureFilterType 描画時のテクスチャフィルタ(近傍補間:Nearestもしくは線形補間:Linear)

主なイベント

なし

使用方法

GeometryObject2Dクラスのサンプルです。

SS

C++

#include <Base.h>

/**
@brief  円を描画するサンプル。
*/
int main()
{
    // Altseedを初期化する。
    asd::Engine::Initialize(asd::ToAString("GeometryObject2D_CircleShape").c_str(), 640, 480, asd::EngineOption());

    // 図形描画オブジェクトのインスタンスを生成する。
    auto geometryObj = std::make_shared<asd::GeometryObject2D>();

    // 図形描画オブジェクトのインスタンスをエンジンに追加する。
    asd::Engine::AddObject2D(geometryObj);

    // 円の図形クラスのインスタンスを生成する。
    auto arc = std::make_shared<asd::CircleShape>();

    // 円の外径、中心位置を指定する。
    arc->SetOuterDiameter(400);
    arc->SetPosition(asd::Vector2DF(320, 240));

    // 円を描画する図形として設定する。
    geometryObj->SetShape(arc);

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

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

C#

/// <summary>
/// 円を描画するサンプル。
/// </summary>
public class GeometryObject2D_CircleShape
{
    public string Description
    {
        get { return ""; }
    }
    public string Title
    {
        get { return ""; }
    }
    public string ClassName
    {
        get { return "GeometryObject2D_CircleShape"; }
    }

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

        // 図形描画オブジェクトのインスタンスを生成する。
        var geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 円の図形クラスのインスタンスを生成する。
        var arc = new asd.CircleShape();

        // 円の外径、中心位置を指定する。
        arc.OuterDiameter = 400;
        arc.Position = new asd.Vector2DF(320, 240);

        // 円を描画する図形として設定する。
        geometryObj.Shape = arc;

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

        }

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

Java

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

        // 図形描画オブジェクトのインスタンスを生成する。
        asd.GeometryObject2D geometryObj = new asd.GeometryObject2D();

        // 図形描画オブジェクトのインスタンスをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj);

        // 円の図形クラスのインスタンスを生成する。
        asd.CircleShape arc = new asd.CircleShape();

        // 円の外径、中心位置を指定する。
        arc.setOuterDiameter(400);
        arc.setPosition(new asd.Vector2DF(320, 240));

        // 円を描画する図形として設定する。
        geometryObj.setShape(arc);

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

        }


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