Ejemplo n.º 1
0
        public void UpdateBorder(int SizeOfSystem)
        {
            sizeOfSystem = SizeOfSystem;
            //Console.WriteLine("Setting size of system to " + SizeOfSystem);
            if (Border.Body != null && _physicsManager.World.BodyList.Contains(Border.Body))
            {
                Debugging.DisposeStack.Push(this.ToString());
                Border.Body.Dispose();
            }
            borderList.Clear();

            Vertices verts = Boundaries.CreateConcaveSemiCircle(SizeOfSystem / 100f, SizeOfSystem / 100);

            foreach (Vector2 v in verts)
            {
                borderList.Add(v);
            }



            Border = new PlanetBorder();
            var tempbd = new CollisionDataObject(Border, BodyTypes.WallTile);

            Debugging.AddStack.Push(this.ToString());
            Border.Body                 = BodyFactory.CreateLoopShape(_physicsManager.World, verts, Vector2.Zero, tempbd);
            Border.Body.IsStatic        = true;
            Border.Body.UserData        = tempbd;
            Border.Body.SleepingAllowed = true;
            Border.Body.Friction        = 0f;
            Border.Body.Restitution     = 0.2f;
        }
Ejemplo n.º 2
0
 public BorderManager(Texture2D borderTexture, SpriteBatch spriteBatch, PhysicsManager physicsManager)
 {
     _physicsManager = physicsManager;
     _spriteBatch    = spriteBatch;
     Border          = new PlanetBorder();
     // Debug Textures
     tex_EdgeOfSystem = borderTexture;
 }