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; }
public void RestartGame(SnakeView snakeView) { SnakeWorld.StopGame(); snakeView.main.Children.Clear(); if (!SnakeWorld.IsActive) { SnakeWorld.StartGame(elementSize, snakeView); } }
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; }
/// <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 }
public void StartGame(SnakeView snakeView) { SnakeWorld.StartGame(elementSize, snakeView); }
public SnakeViewModel(SnakeView snakeView) { SnakeWorld = new SnakeWorld(); }