示例#1
0
 /// <summary>
 /// Updates the explosions.
 /// </summary>
 /// <param name="gameTime">The GameTime.</param>
 private void UpdateExplosion(GameTime gameTime)
 {
     for (int i = 0; i < Explosions.Count; i++)
     {
         Explosion explosion = Explosions[i];
         if (explosion.RemainingLifeTime <= 0)
         {
             Explosions.Remove(explosion);
             i++;
         }
         else
         {
             explosion.Update(gameTime);
         }
     }
 }
示例#2
0
        public int Update(GameTime gameTime, float screenWidth, float screenHeight, double totalGameTime)
        {
            //foreach (var ship in _shipCollection)
            //    ship.Update(elapsedTime, screenWidth, screenHeight);

            //for (int i = _projectiles.Count - 1; i >= 0; i--)
            //{
            //    if (_projectiles[i].Y > screenHeight)
            //        _projectiles.Remove(_projectiles[i]);
            //    else
            //        _projectiles[i].Update(elapsedTime, screenWidth, screenHeight);
            //}

            var newShips = CreateShips(gameTime, screenWidth, totalGameTime);

            for (int i = Ships.Count - 1; i >= 0; i--)
            {
                if (Ships[i].Position.Y > screenHeight)
                {
                    Ships.Remove(Ships[i]);
                }
                else
                {
                    Ships[i].Update(gameTime, screenWidth, screenHeight);
                }
            }

            for (int i = Explosions.Count - 1; i >= 0; i--)
            {
                if (!Explosions[i].Active)
                {
                    Explosions.Remove(Explosions[i]);
                }
                else
                {
                    Explosions[i].Update(gameTime);
                }
            }

            return(newShips);
        }
示例#3
0
        private async Task SelectedChangedAsync(Event _event)
        {
            if (SelectedEvents.All(e => e != _event))
            {
                foreach (var report in Reports.ToArray())
                {
                    if (report.Event.Id == _event.Id)
                    {
                        Reports.Remove(report);
                    }
                }
                foreach (var explosion in Explosions.ToArray())
                {
                    if (explosion.Event.Id == _event.Id)
                    {
                        Explosions.Remove(explosion);
                    }
                }
            }
            else
            {
                var reports = await MapModel.GetReports(_event.Id);

                var explosions = await MapModel.GetExplosions(_event.Id);

                foreach (var report in reports)
                {
                    Reports.Add(report);
                }
                foreach (var explosion in explosions)
                {
                    Explosions.Add(explosion);
                }
            }
            OnPropertyChanged(nameof(LocationList));
        }