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(); }
static void Main(string[] args) { // Altseed2 を初期化します。 Engine.Initialize("Collision", 640, 480); // 衝突判定が行われるノードの親ノードを作成します。 var scene = new Node(); // コライダを自動処理するノードをシーンに登録します。 scene.AddChildNode(new CollisionManagerNode()); // 衝突判定を持つSpriteNodeを生成します。 var texture = Texture2D.Load(@"TestData/IO/AltseedPink256.png"); var sprite = new SpriteNode() { Position = new Vector2F(200f, 200f), Scale = new Vector2F(0.5f, 0.5f), Texture = texture, CenterPosition = texture.Size / 2, }; // 円形コライダノードを生成します。 var collider = new CircleColliderNode() { Radius = texture.Size.X / 2, }; // colliderの衝突判定を視覚化できるノードを生成します。 var visualizer = ColliderVisualizeNodeFactory.Create(collider); // エンジンにノードを追加します。 scene.AddChildNode(sprite); sprite.AddChildNode(collider); collider.AddChildNode(visualizer); Engine.AddNode(scene); // メインループ。 // Altseed のウインドウが閉じられると終了します。 while (Engine.DoEvents()) { // Altseed を更新します。 Engine.Update(); } // Altseed の終了処理をします。 Engine.Terminate(); }
public Player_Circle(Texture2D texture) { Engine.AddNode(text = new TextNode() { Font = Font.LoadDynamicFontStrict("TestData/Font/mplus-1m-regular.ttf", 40), Position = new Vector2F(0, 0), Color = new Color(255, 255, 255, 255), }); Texture = texture; Position = new Vector2F(0f, 300f); CenterPosition = texture.Size / 2; node = new CircleColliderNode() { Radius = texture.Size.X / 2 }; node.AddChildNode(ColliderVisualizeNodeFactory.Create(node)); AddChildNode(node); }