public void MainLoop() { float dt = timer.ElapsedMilliseconds / 1000f; timer.Restart(); ResetReload(Player, dt); Tanks.ForEach(tank => ResetReload(tank, dt)); CreateApple(2); CreateTank(1); RotateTank(0.5f); Collision(dt); ShootTanks(); if (!StatisticsForm.isClosed) { RefreshLog(); form.RefreshDgv(logs); } func f; if (IsGame) { f = Player.SetSprite; Booms.ForEach(i => f += i.SetSprite); f(dt); } Booms.Where(boom => boom.EndAnimation()).ToList() .ForEach(bang => Booms.Remove(bang)); view.Render(IsGame); }
private void MainLoop() { float dt = timer.ElapsedMilliseconds / 1000f; timer.Restart(); // Убираем перезарядку ResetReload(_objects.Player, dt); _objects.Tanks.ForEach(tank => ResetReload(tank, dt)); // Если врагов мало, то с шансом 2% генерируем нового CreateTank(2); // Если яблок мало, то с шансом 1% генерируем нового CreateApple(1); // С шансом 1/200 поворачиваем танк RotateTank(0.5f); // Проверяем столкновения и сдвигаем объекты Collision(dt); // Смотрим, если перед танком игрок - стреляем ShootTanks(); // Смещаем спрайты анимации SetSprites(dt); // Если закнчился взрыв, удаляем его _objects.Bangs.Where(bang => bang.OnFinish()).ToList() .ForEach(bang => _objects.Bangs.Remove(bang)); _view.Render(isGame); //Draw(_view.Map, dt); }