private void OnKeyUp(object sender, KeyEventArgs e) { if (Configerator.instance.GameType == Configerator.Game.player) { SnakeController.HideKnownItem(sender, e); } }
private void OnKeyDown(object sender, KeyEventArgs e) { if (Configerator.instance.GameType == Configerator.Game.player) { SnakeController.MoveSnake(sender, e); SnakeController.PauseSnake(sender, e); SnakeController.ShowKnownItem(sender, e); } }
public void Run() { bool completedGame = false; double gameLoopInterval = (double)GameVariables.GameLoopInterval; DateTime lastDate = DateTime.Now; // Pobiera czas aktualny (z komputera) i zapisuje go jako akatualny Fruit fruit = new Fruit(); Snake snake = new Snake(); SnakeController snakeController = new SnakeController(); while (!completedGame) { if (Console.KeyAvailable) { string direction = snakeController.ChangeDirection(Console.ReadKey()); if (direction != null) { snake.Direction = direction; } } if (!((DateTime.Now - lastDate).TotalMilliseconds >= gameLoopInterval)) { continue; } snake.Move(); if (fruit.FruitPosition.X == snake.HeadPosition.X && fruit.FruitPosition.Y == snake.HeadPosition.Y) { snake.EatFruit(); fruit = new Fruit(); gameLoopInterval /= 1; } if (snake.GameOver) { completedGame = snakeController.ShowGameOverScreen(snake.Length); } lastDate = DateTime.Now; } }
private void StartGame() { UpdateVisibility(); if (Configerator.instance.GameType == Configerator.Game.bot) { world = new BotWorld(new Vector2(30, 30)); WorldRenderer.Init(world, this); ((BotWorld)world).InitSpecies(GenSize, 1, PopSize); timer1.Interval = 1000 / 60; } else if (Configerator.instance.GameType == Configerator.Game.test) { world = new TestBotWorld(new Vector2(30, 30)); WorldRenderer.Init(world, this); ((TestBotWorld)world).LoadTrainedSnake(); timer1.Interval = 1000 / 30; } else//GameType == player { world = new World(new Vector2(30, 30)); WorldRenderer.Init(world, this); world.InitSnake(); world.InitWalls(); world.InitTransparentAreas(); if (Configerator.instance.RecognitionType == Configerator.ItemRecognition.onlyKnown) { world.InitKnownItem(); WorldRenderer.UpdateKnownItemLabel(); } world.InitEnemySnake(); SnakeController.SetSnake(world.snake); timer1.Interval = 1000 / 20; } WorldRenderer.UpdateHighScoreLabel(); WorldRenderer.UpdateLevelLabel(); WorldRenderer.UpdateLifeLabel(); WorldRenderer.UpdatePausesLeftLabel(); timer1.Start(); }