Files
2025-09-21 20:11:21 +08:00

66 lines
2.0 KiB
C#

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;
}
}
}
}
}