Example #1
0
        public void Move(T ObjectToMove, Vector2 Offset)
        {
            ObjectToMove.Collision.Center += Offset;
            CollisionZone <T> Root = ObjectToMove.Collision.ListParent.First.Value;

            foreach (CollisionZone <T> ActiveParent in ObjectToMove.Collision.ListParent)
            {
                ActiveParent.ListObjectInZoneAndOverlappingParents.Remove(ObjectToMove);
            }
            ObjectToMove.Collision.ListParent.Clear();
            Root.AddToZone(ObjectToMove);
        }
Example #2
0
        public AdventureMap()
        {
            BulletCollisions    = new List <Bullet>(1024);
            PlayerCollisions    = new CollisionZone <Player>(2000, 100, -500, -500);
            WorldCollisions     = new CollisionZone <WorldObject>(2000, 100, -500, -500);
            BombCollisions      = new CollisionZone <Bomb>(2000, 100, -500, -500);
            ExplosionCollisions = new List <SimpleLinearExplosion>();

            ListWorldCollisionPolygon = new List <Polygon>();
            ListImages = new List <SimpleAnimation>();
            ListProp   = new List <Prop>();
        }
Example #3
0
        public CollisionZone(int Size, int NumberOfSubdivisions, int ZoneX, int ZoneY)
        {
            this.ZoneX = ZoneX;
            this.ZoneY = ZoneY;

            ListObjectInZoneAndOverlappingParents = new LinkedList <T>();
            ArraySubZone = new CollisionZone <T> [NumberOfSubdivisions * NumberOfSubdivisions];
            if (NumberOfSubdivisions > 0)
            {
                SubdivisionSize = Size / NumberOfSubdivisions;

                for (int X = 0; X < NumberOfSubdivisions; ++X)
                {
                    for (int Y = 0; Y < NumberOfSubdivisions; ++Y)
                    {
                        ArraySubZone[X + Y * NumberOfSubdivisions] = new CollisionZone <T>(SubdivisionSize, 0, ZoneX + X * NumberOfSubdivisions, ZoneY + Y * NumberOfSubdivisions);
                    }
                }
            }
        }