public void Init_Game() { CollisionManager.Collisions.Clear(); CollisionManager.Work = true; CollisionManager.Interact += new CollisionManager.InteractCollision(Collision_Handler); AnimationManager.Animations.Clear(); _road = new RoadController(Width, Height); _carPlayer = new PlayerController(Width, Height); _carPlayer.Init_Car(MainSpace.SelfRef.CarPlayerExmp.Clone()); _carPlayer.State += new PlayerController.StateMachine(Player_State_Machine); _carEnemy = new EnemyController(Width, Height); _carEnemy.Init_Car(MainSpace.SelfRef.TemplateCars[_rand.Next(0, MainSpace.SelfRef.TemplateCars.Count - 1)].Clone()); _carEnemy.State += new EnemyController.StateMachine(Enemy_State_Machine); _enemyAi = new EnemyAI { CarEnemy = _carEnemy, CarPlayer = _carPlayer }; _finish = new Finish(_rand.Next(100, 300), Width, Height); _propController = new PropController(_carPlayer, _carEnemy); _postProcessing = new PostProcessing(Width, Height); Focus(); Start_Resize(); Game_Loop.Start(); }
private void Game_Loop_Tick(object sender, EventArgs e) { string pressed_key = MainSpace.SelfRef.PressedKey; if (!_playGame && (pressed_key == "R")) { Breaking_Text.Text = ""; Speed_Info.Visible = true; Instruction.Visible = true; Pause_Label.Visible = false; _playGame = true; VoiceManager.Change_Voice("Go"); } if (pressed_key == "Escape") { Game_Loop.Stop(); Speed_Info.Visible = false; Instruction.Visible = false; Pause_Label.Visible = true; EndGame_Label.Visible = false; _playGame = false; SoundManager.Stop_All_Sound(); MainSpace.SelfRef.Show_Menu(); } if (_playGame) { _carPlayer.Key_Event(pressed_key); _carPlayer.Update(); _enemyAi.Behavior(); _carEnemy.Move_Enemy(_carPlayer.Car.CurrentSpeed); _carEnemy.Update(); _propController.Update(Width); _road.Remove_Road_Parts(); _road.Prolong_Road_Parts(); _road.Move_Road_Parts(_carPlayer.Car.CurrentSpeed); _finish.Check_Win(_carPlayer.Car.CoverDistance, _carEnemy.Car.CoverDistance); _finish.Move(_carPlayer.Car.CurrentSpeed); CollisionManager.Check(); AnimationManager.Update_Animations(); Speed_Info.Text = $"Скорость: {_carPlayer.Car.CurrentSpeed} \nНитро: {_carPlayer.Car.CurentBoostCharge}"; if (!string.IsNullOrEmpty(_finish.Result) && (EndGame_Label.Visible == false)) { EndGame_Label.Visible = true; } } Repaint(); }