public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Collision2D_Geometries", 640, 480, new asd.EngineOption());

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

        // マウスによって動かす円。
        asd.CircleShape selfCircle;

        // 停止している円、三角形、矩形。
        asd.CircleShape    circle;
        asd.TriangleShape  triangle;
        asd.RectangleShape rect;


        // 図形描画オブジェクトをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj0);
        asd.Engine.AddObject2D(geometryObj1);
        asd.Engine.AddObject2D(geometryObj2);
        asd.Engine.AddObject2D(geometryObj3);

        // マウスによって動かす円の形状と描画の設定を行う。
        {
            // 円の外径を指定する。
            selfCircle = new asd.CircleShape();
            selfCircle.OuterDiameter = 100;

            // マウスによって動かす円を描画する図形として設定する。
            geometryObj0.Shape = selfCircle;
        }

        // 停止している円の形状と描画の設定を行う。
        {
            // 円の外径、中心位置を指定する。
            circle = new asd.CircleShape();
            circle.OuterDiameter = 100;
            circle.Position      = new asd.Vector2DF(400, 100);

            // 円を描画する図形として設定する。
            geometryObj1.Shape = circle;
        }

        // 停止している三角形の形状と描画の設定を行う。
        {
            // 三角形の各頂点の位置を指定する。
            triangle = new asd.TriangleShape();
            triangle.SetPointByIndex(new asd.Vector2DF(440, 350), 0);
            triangle.SetPointByIndex(new asd.Vector2DF(340, 450), 1);
            triangle.SetPointByIndex(new asd.Vector2DF(580, 450), 2);

            // 停止している三角形を描画する図形として設定する。
            geometryObj2.Shape = triangle;
        }

        // 停止している矩形の形状と描画の設定を行う。
        {
            rect             = new asd.RectangleShape();
            rect.DrawingArea = new asd.RectF(70, 110, 300, 200);
            rect.Angle       = 15;

            // 停止している矩形を描画する図形として設定する。
            geometryObj3.Shape = rect;
        }


        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // マウスによって制御される円の中心位置をマウスの位置とする。
            selfCircle.Position = asd.Engine.Mouse.Position;

            // 停止している円・三角形・矩形のいずれかに、マウスによって動く円が衝突した時に円を赤く変化させる。
            // そうでない時は白く変化させる。
            if (selfCircle.GetIsCollidedWith(circle) ||
                selfCircle.GetIsCollidedWith(triangle) ||
                selfCircle.GetIsCollidedWith(rect))
            {
                geometryObj0.Color = new asd.Color(255, 0, 0, 255);
            }
            else
            {
                geometryObj0.Color = new asd.Color(255, 255, 255, 255);
            }

            Recorder.CaptureScreen("Collision2D_Geometries", 30, 120, 0.5f, 0.5f);

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

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
    public void Run()
    {
        // Altseedを初期化する。
        asd.Engine.Initialize("Collision2D_Geometries", 640, 480, new asd.EngineOption());

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

        // マウスによって動かす円。
        asd.CircleShape selfCircle;

        // 停止している円、三角形、矩形。
        asd.CircleShape circle;
        asd.TriangleShape triangle;
        asd.RectangleShape rect;

        // 図形描画オブジェクトをエンジンに追加する。
        asd.Engine.AddObject2D(geometryObj0);
        asd.Engine.AddObject2D(geometryObj1);
        asd.Engine.AddObject2D(geometryObj2);
        asd.Engine.AddObject2D(geometryObj3);

        // マウスによって動かす円の形状と描画の設定を行う。
        {
            // 円の外径を指定する。
            selfCircle = new asd.CircleShape();
            selfCircle.OuterDiameter = 100;

            // マウスによって動かす円を描画する図形として設定する。
            geometryObj0.Shape = selfCircle;
        }

        // 停止している円の形状と描画の設定を行う。
        {
            // 円の外径、中心位置を指定する。
            circle = new asd.CircleShape();
            circle.OuterDiameter = 100;
            circle.Position = new asd.Vector2DF(400, 100);

            // 円を描画する図形として設定する。
            geometryObj1.Shape = circle;
        }

        // 停止している三角形の形状と描画の設定を行う。
        {
            // 三角形の各頂点の位置を指定する。
            triangle = new asd.TriangleShape();
            triangle.SetPointByIndex(new asd.Vector2DF(440, 350), 0);
            triangle.SetPointByIndex(new asd.Vector2DF(340, 450), 1);
            triangle.SetPointByIndex(new asd.Vector2DF(580, 450), 2);

            // 停止している三角形を描画する図形として設定する。
            geometryObj2.Shape = triangle;
        }

        // 停止している矩形の形状と描画の設定を行う。
        {
            rect = new asd.RectangleShape();
            rect.DrawingArea = new asd.RectF(70, 110, 300, 200);
            rect.Angle = 15;

            // 停止している矩形を描画する図形として設定する。
            geometryObj3.Shape = rect;
        }

        // Altseedのウインドウが閉じられていないか確認する。
        while (asd.Engine.DoEvents())
        {
            // マウスによって制御される円の中心位置をマウスの位置とする。
            selfCircle.Position = asd.Engine.Mouse.Position;

            // 停止している円・三角形・矩形のいずれかに、マウスによって動く円が衝突した時に円を赤く変化させる。
            // そうでない時は白く変化させる。
            if (selfCircle.GetIsCollidedWith(circle)
                || selfCircle.GetIsCollidedWith(triangle)
                || selfCircle.GetIsCollidedWith(rect))
            {
                geometryObj0.Color = new asd.Color(255, 0, 0, 255);
            }
            else
            {
                geometryObj0.Color = new asd.Color(255, 255, 255, 255);
            }

            Recorder.CaptureScreen("Collision2D_Geometries", 30, 120, 0.5f, 0.5f);

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

        // Altseedの終了処理をする。
        asd.Engine.Terminate();
    }
Example #3
0
        protected override void OnStart()
        {
            var scene = new asd.Scene();
            var layer = new asd.Layer2D();
            var texture = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Sample1.png");
            var geometryObj1 = new asd.GeometryObject2D();
            var geometryObj2 = new asd.GeometryObject2D();
            var geometryObj3 = new asd.GeometryObject2D();
            var geometryObj4 = new asd.GeometryObject2D();
            var geometryObj5 = new asd.GeometryObject2D();
            var geometryObj6 = new asd.GeometryObject2D();

            layer.AddObject(geometryObj1);
            layer.AddObject(geometryObj2);
            layer.AddObject(geometryObj3);
            layer.AddObject(geometryObj4);
            layer.AddObject(geometryObj5);
            layer.AddObject(geometryObj6);

            scene.AddLayer(layer);
            asd.Engine.ChangeScene(scene);

            {
                var circle = new asd.CircleShape();
                circle.OuterDiameter = 100.0f;
                circle.InnerDiameter = 10.0f;
                circle.NumberOfCorners = 96;
                circle.Position = new asd.Vector2DF(100, 50);

                geometryObj1.Shape = circle;
                geometryObj1.Texture = texture;
                geometryObj1.Position = new asd.Vector2DF(0, 0);
            }

            {
                var arc = new asd.ArcShape();
                arc.OuterDiameter = 100;
                arc.InnerDiameter = 10;
                arc.NumberOfCorners = 96;
                arc.Position = new asd.Vector2DF(300, 50);
                arc.StartingCorner = 90;
                arc.EndingCorner = 5;

                geometryObj2.Shape = arc;
                geometryObj2.Texture = texture;
                geometryObj2.Position = new asd.Vector2DF(0, 0);
            }

            {
                var line = new asd.LineShape();
                line.StartingPosition = new asd.Vector2DF(410, 50);
                line.EndingPosition = new asd.Vector2DF(630, 50);
                line.Thickness = 5.0f;

                geometryObj3.Shape = line;
                geometryObj3.Position = new asd.Vector2DF(0, 0);
            }

            {
                var rect = new asd.RectangleShape();
                rect.DrawingArea = new asd.RectF(10, 110, 300, 200);
                rect.UV = new asd.RectF(0.0f, 0.0f, 0.5f, 0.5f);

                geometryObj4.Shape = rect;
                geometryObj4.Texture = texture;
                geometryObj4.Position = new asd.Vector2DF(0, 0);
            }

            {
                var triangle = new asd.TriangleShape();
                triangle.SetPointByIndex(new asd.Vector2DF(320, 350), 0);
                triangle.SetPointByIndex(new asd.Vector2DF(100, 450), 1);
                triangle.SetPointByIndex(new asd.Vector2DF(540, 450), 2);

                triangle.SetUVByIndex(new asd.Vector2DF(0.5f, 0.2f), 0);
                triangle.SetUVByIndex(new asd.Vector2DF(0.1f, 0.5f), 1);
                triangle.SetUVByIndex(new asd.Vector2DF(0.9f, 0.7f), 2);

                geometryObj5.Shape = triangle;
                geometryObj5.Texture = texture;
                geometryObj5.Position = new asd.Vector2DF(0, 0);
            }

            {
                var polygon = new asd.PolygonShape();

                for (int i = 0; i < 10; ++i)
                {
                    asd.Vector2DF vec = new asd.Vector2DF(1, 0);
                    vec.Degree = i * 36;
                    vec.Length = (i % 2 == 0) ? 100 : 55;
                    polygon.AddVertex(vec + new asd.Vector2DF(500, 250));

                }

                geometryObj6.Shape = polygon;
                geometryObj6.Texture = texture;
                geometryObj6.Position = new asd.Vector2DF(0, 0);
            }
        }
Example #4
0
        protected override void OnStart()
        {
            var scene        = new asd.Scene();
            var layer        = new asd.Layer2D();
            var texture      = asd.Engine.Graphics.CreateTexture2D("Data/Texture/Sample1.png");
            var geometryObj1 = new asd.GeometryObject2D();
            var geometryObj2 = new asd.GeometryObject2D();
            var geometryObj3 = new asd.GeometryObject2D();
            var geometryObj4 = new asd.GeometryObject2D();
            var geometryObj5 = new asd.GeometryObject2D();
            var geometryObj6 = new asd.GeometryObject2D();

            layer.AddObject(geometryObj1);
            layer.AddObject(geometryObj2);
            layer.AddObject(geometryObj3);
            layer.AddObject(geometryObj4);
            layer.AddObject(geometryObj5);
            layer.AddObject(geometryObj6);

            scene.AddLayer(layer);
            asd.Engine.ChangeScene(scene);

            {
                var circle = new asd.CircleShape();
                circle.OuterDiameter   = 100.0f;
                circle.InnerDiameter   = 10.0f;
                circle.NumberOfCorners = 96;
                circle.Position        = new asd.Vector2DF(100, 50);

                geometryObj1.Shape    = circle;
                geometryObj1.Texture  = texture;
                geometryObj1.Position = new asd.Vector2DF(0, 0);
            }

            {
                var arc = new asd.ArcShape();
                arc.OuterDiameter   = 100;
                arc.InnerDiameter   = 10;
                arc.NumberOfCorners = 96;
                arc.Position        = new asd.Vector2DF(300, 50);
                arc.StartingCorner  = 90;
                arc.EndingCorner    = 5;

                geometryObj2.Shape    = arc;
                geometryObj2.Texture  = texture;
                geometryObj2.Position = new asd.Vector2DF(0, 0);
            }

            {
                var line = new asd.LineShape();
                line.StartingPosition = new asd.Vector2DF(410, 50);
                line.EndingPosition   = new asd.Vector2DF(630, 50);
                line.Thickness        = 5.0f;

                geometryObj3.Shape    = line;
                geometryObj3.Position = new asd.Vector2DF(0, 0);
            }

            {
                var rect = new asd.RectangleShape();
                rect.DrawingArea = new asd.RectF(10, 110, 300, 200);
                rect.UV          = new asd.RectF(0.0f, 0.0f, 0.5f, 0.5f);

                geometryObj4.Shape    = rect;
                geometryObj4.Texture  = texture;
                geometryObj4.Position = new asd.Vector2DF(0, 0);
            }

            {
                var triangle = new asd.TriangleShape();
                triangle.SetPointByIndex(new asd.Vector2DF(320, 350), 0);
                triangle.SetPointByIndex(new asd.Vector2DF(100, 450), 1);
                triangle.SetPointByIndex(new asd.Vector2DF(540, 450), 2);

                triangle.SetUVByIndex(new asd.Vector2DF(0.5f, 0.2f), 0);
                triangle.SetUVByIndex(new asd.Vector2DF(0.1f, 0.5f), 1);
                triangle.SetUVByIndex(new asd.Vector2DF(0.9f, 0.7f), 2);

                geometryObj5.Shape    = triangle;
                geometryObj5.Texture  = texture;
                geometryObj5.Position = new asd.Vector2DF(0, 0);
            }

            {
                var polygon = new asd.PolygonShape();

                for (int i = 0; i < 10; ++i)
                {
                    asd.Vector2DF vec = new asd.Vector2DF(1, 0);
                    vec.Degree = i * 36;
                    vec.Length = (i % 2 == 0) ? 100 : 55;
                    polygon.AddVertex(vec + new asd.Vector2DF(500, 250));
                }

                geometryObj6.Shape    = polygon;
                geometryObj6.Texture  = texture;
                geometryObj6.Position = new asd.Vector2DF(0, 0);
            }
        }