Ejemplo n.º 1
0
        public override void Update(GameTime gameTime)
        {
            if (MapManager.ActiveMap != null)
            {
                MapManager.ActiveMap.Update(gameTime);
            }

            var gameobjects = WorldObjects.AllObjects();

            foreach (var gameobject in gameobjects)
            {
                gameobject.Update(gameTime);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Hakee lähimmät gameobjectit
        /// </summary>
        /// <param name="source">Kenestä katsottuna lähimmät.</param>
        /// <param name="radius">Säde kuinka laajalta alueelta etsitään.</param>
        /// <returns></returns>
        public List <GameObject> GetNearGameObjects(GameObject source, Padding radius)
        {
            List <GameObject> gobs = new List <GameObject>();

            foreach (GameObjectManager gameobjectManager in MapManager.ActiveMap.ObjectManagers.AllManagers())
            {
                gobs.AddRange(gameobjectManager.AllObjects());
            }

            gobs.AddRange(WorldObjects.AllObjects());
            Rectangle r = new Rectangle((int)(source.Position.X - radius.Left), (int)(source.Position.Y - radius.Top), source.Size.Width + radius.Right * 2, source.Size.Height + radius.Bottom * 2);
            //Rectangle r = new Rectangle((int)(source.Position.X - radius.Left), (int)(source.Position.Y - radius.Top), radius.Left + radius.Right, radius.Top + radius.Bottom * 2);

            var objects = gobs.Where(
                o => !ReferenceEquals(o, source) && r.Intersects(new Rectangle((int)o.Position.X, (int)o.Position.Y, o.Size.Width, o.Size.Height))).ToList();

            return(objects);
        }