Example #1
0
        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();
        }
Example #2
0
        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();
        }