Пример #1
0
        public void Update(GameTime gameTime)
        {
            List <Creep> DirtyCreeps = new List <Creep>();

            foreach (var v in CreepWaypointDict)
            {
                Creep c = v.Key;
                if (creepPath.UpdateCreep(c, v.Value) == true)
                {
                    DirtyCreeps.Add(c);
                }
                c.Update(gameTime);
                //c.Rotation = c.Center - MousePos;
            }

            foreach (Tower t in ActiveTowers)
            {
                t.Update(gameTime);
                t.Rotation = t.Center - MousePos;
            }

            foreach (Creep c in DirtyCreeps)
            {
                CreepWaypointDict[c]++;
            }

            foreach (Projectile p in ActiveProjectiles)
            {
                p.Update(gameTime);
            }

            CollisionDetection();
            foreach (Tower T in TowersToRemove)
            {
                ActiveTowers.Remove(T);
            }
            foreach (Creep C in CreepsToRemove)
            {
                CreepWaypointDict.Remove(C);
            }
            foreach (Projectile P in ProjectilesToRemove)
            {
                ActiveProjectiles.Remove(P);
            }
            TowersToRemove.Clear();
            CreepsToRemove.Clear();
            ProjectilesToRemove.Clear();
        }