Esempio n. 1
0
        private void AddSnakeGame()
        {
            SnakeView snakeView = new SnakeView();

            snakeView.Margin          = new Thickness(15);
            snakeView.BorderBrush     = new SolidColorBrush(Colors.DarkRed);
            snakeView.BorderThickness = new Thickness(15, 20, 15, 20);
            game.Content = snakeView;
        }
Esempio n. 2
0
 public void RestartGame(SnakeView snakeView)
 {
     SnakeWorld.StopGame();
     snakeView.main.Children.Clear();
     if (!SnakeWorld.IsActive)
     {
         SnakeWorld.StartGame(elementSize, snakeView);
     }
 }
Esempio n. 3
0
        public void StartGame(int elementSize, SnakeView snakeView)
        {
            ElementSize       = elementSize;
            MainWindowHeight  = (int)snakeView.main.ActualHeight;
            MainWindowWidth   = (int)snakeView.main.ActualWidth;
            MainWindowColumns = MainWindowWidth / ElementSize;
            MainWindowRows    = MainWindowHeight / ElementSize;

            this.snakeView = snakeView;
            ElementSize    = elementSize;
            StartSnake();

            _timer = new DispatcherTimer
            {
                Interval = TimeSpan.FromTicks(TimeSpan.FromMilliseconds(200).Ticks)
            };
            _timer.Tick += timerTick;
            _timer.Start();
            IsActive = true;
        }
Esempio n. 4
0
        /// <summary>
        /// exécute le contrôleur principal
        /// </summary>
        public static void Execute()
        {
            //*************************SETUP*************************
            //Model
            GameArea     gameAreaModel = new GameArea(Game.widthArea, Game.heightArea);
            Snake        snakeModel    = new Snake();
            Score        scoreModel    = new Score();
            FruitFactory fruitFactory  = new FruitFactory();
            Fruit        fruitModel    = fruitFactory.CreateFruit(gameAreaModel, snakeModel);

            //Controllers
            ControlKey          KeyController       = new ControlKey();
            SnakeControler      snakeControler      = new SnakeControler();
            FruitControler      fruitControler      = new FruitControler();
            CollisionController collisionController = new CollisionController();
            Clock clock = new Clock(Game.durationTick);

            Direction newDirection;

            //Views
            Console.Title = "BananaSnake game";
            TetrisMusic.StartMusic();
            GameAreaView.GameAera = gameAreaModel;
            GameAreaView.Draw();
            SnakeView.DrawAllSnake(snakeModel);

            //*************************READY*************************
            Console.ReadKey(true);

            //*************************START*************************
            clock.StartClock();
            while (Game.isGameOn)
            {
                //Récupère nouvelle direction serpent
                newDirection = KeyController.GetLastKey(snakeModel);

                if (!Game.isGamePaused)
                {
                    //Controler collisions
                    Game.isWallHit         = collisionController.IsHitWall(snakeModel, gameAreaModel, newDirection);//Mintenant inutile
                    Game.isFruitEat        = collisionController.IsHitFruit(snakeModel, fruitModel, newDirection, gameAreaModel);
                    Game.isSnakeHitHimself = collisionController.IsHitSnake(snakeModel);

                    //Act selon collisions

                    //Controller AvancerSerpent
                    fruitModel = fruitControler.UpdateFruit(fruitModel, Game.isFruitEat, fruitFactory, gameAreaModel, scoreModel, snakeModel);


                    //Controler serpent
                    snakeControler.MoveSnake(snakeModel,
                                             newDirection,
                                             Game.isFruitEat,
                                             gameAreaModel);

                    //Game Over
                    if (Game.isSnakeHitHimself)
                    {
                        Game.isGameOn = false;
                    }
                }
                //Dessiner jeu
                ViewStratege.DrawView(scoreModel, gameAreaModel, snakeModel, fruitModel);
                if (!Game.isGameOn)
                {
                    Console.ReadKey();
                }

                //Attendre prochain tick
                clock.WaitNextTick();
                //System.Threading.Thread.Sleep(Game.speed);
            }


            //Fin du jeu
        }
Esempio n. 5
0
 public void StartGame(SnakeView snakeView)
 {
     SnakeWorld.StartGame(elementSize, snakeView);
 }
Esempio n. 6
0
 public SnakeViewModel(SnakeView snakeView)
 {
     SnakeWorld = new SnakeWorld();
 }