static void Main(string[] args)
        {
            // Altseed を初期化します。
            Engine.Initialize("~ Altseed2 DEMO ~", 640, 480);

            // 移動するスプライトを作って、エンジンに登録します。
            var sprite1 = new CollidableSprite();
            Engine.AddNode(sprite1);

            // 固定するスプライトを作って、エンジンに登録します。
            var sprite2 = new CollidableSprite();
            sprite2.Position = new Vector2F(480, 320);
            Engine.AddNode(sprite2);

            // コライダを自動処理するノードをシーンに登録します。
            var collisionManager = new CollisionManagerNode();
            Engine.AddNode(collisionManager);

            // メインループ。
            // Altseed のウインドウが閉じられると終了します。
            while (Engine.DoEvents())
            {
                // スプライトの描画位置を更新します。
                sprite1.Position = Engine.Mouse.Position;

                // Altseed を更新します。
                Engine.Update();
            }

            // Altseed の終了処理をします。
            Engine.Terminate();
        }
Ejemplo n.º 2
0
        public void AutoCollisionSystem()
        {
            var tc = new TestCore()
            {
                Duration = int.MaxValue
            };

            tc.Init();

            var texture = Texture2D.Load(@"../../Core/TestData/IO/AltseedPink.png");

            Assert.NotNull(texture);

            var scene   = new Altseed.Node();
            var manager = new CollisionManagerNode();

            scene.AddChildNode(manager);

            Engine.AddNode(scene);

            var player = new Player(texture);

            scene.AddChildNode(player);

            var comparison = new SpriteNode()
            {
                Texture  = texture,
                Position = new Vector2F(300f, 300f)
            };
            var colliderNode = new CircleColliderNode()
            {
                Radius   = texture.Size.X / 2,
                Position = comparison.Position
            };

            comparison.AddChildNode(colliderNode);

            scene.AddChildNode(comparison);

            tc.LoopBody(null, x =>
            {
                if (Engine.Keyboard.GetKeyState(Keys.Escape) == ButtonState.Push)
                {
                    tc.Duration = 0;
                }
                if (x == 10)
                {
                    Assert.True(manager.ContainsCollider(colliderNode));
                    Assert.AreEqual(manager.ColliderCount, 2);
                }
            });
            tc.End();
        }
Ejemplo n.º 3
0
        public void AutoCollisionSystem_Circle()
        {
            var tc = new TestCore();

            tc.Init();
            //tc.Duration = int.MaxValue;

            var texture = Texture2D.LoadStrict(@"TestData/IO/AltseedPink.png");

            Assert.NotNull(texture);

            var scene   = new Altseed2.Node();
            var manager = new CollisionManagerNode();

            scene.AddChildNode(manager);

            Engine.AddNode(scene);

            var player = new Player_Circle(texture);

            scene.AddChildNode(player);

            var comparison = new SpriteNode()
            {
                Texture        = texture,
                CenterPosition = texture.Size / 2,
                Position       = new Vector2F(500f, 100f),
                Scale          = new Vector2F(0.8f, 0.8f),
            };
            var colliderNode = new CircleColliderNode()
            {
                Radius = texture.Size.X / 2,
            };

            comparison.AddChildNode(colliderNode);
            colliderNode.AddChildNode(ColliderVisualizeNodeFactory.Create(colliderNode));
            scene.AddChildNode(comparison);

            tc.LoopBody(null, x =>
            {
                if (Engine.Keyboard.GetKeyState(Key.Escape) == ButtonState.Push)
                {
                    tc.Duration = 0;
                }
                if (x == 10)
                {
                    Assert.True(manager.ContainsCollider(colliderNode));
                    Assert.AreEqual(manager.ColliderCount, 2);
                }
            });
            tc.End();
        }