using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 贪吃蛇 { class GameScene : ISceneUpdate { Map map; Snake snake; Food food; public GameScene() { map = new Map(); snake = new Snake(40, 10); food = new Food(snake); } public void Update() { map.Draw();//画地图 food.Draw();//画食物 snake.Move();//让蛇动起来 snake.Draw();//画蛇 if (snake.CheckEnd(map))//检测游戏是否结束 { Game.ChangeScene(E_Scene.End); } snake.CheckEat(food);//检测蛇是否吃到食物 Thread.Sleep(200);//控制蛇的移动速度 //检测用户输入 if (Console.KeyAvailable)//Console.KeyAvailable的作用是:如果有按键输入才返回Ture,防止卡住 { switch (Console.ReadKey(true).Key) { case ConsoleKey.W: case ConsoleKey.UpArrow: snake.ChangeDirection(E_MoveDirection.Up); //向上 break; case ConsoleKey.S: case ConsoleKey.DownArrow: snake.ChangeDirection(E_MoveDirection.Down); //向下 break; case ConsoleKey.A: case ConsoleKey.LeftArrow: snake.ChangeDirection(E_MoveDirection.Left); //向左 break; case ConsoleKey.D: case ConsoleKey.RightArrow: snake.ChangeDirection(E_MoveDirection.Right); //向右 break; default: break; } } } } }