【视频】半小时内编写一个贪吃蛇游戏

贪吃蛇编写提纲

致谢:

感谢 Ronnie Mooney ,我是在学习了他的视频后完成这个视频的,你可以在 [C#] Creating a Snake Game - Less than an Hour 找到他的视频(需FQ,请自备梯子)。

  • 编写 Input 静态类

    • 初始化静态变量 private static readonly Hashtable _keys = new Hashtable()
    • 编写方法 public static void ChangeState(Keys key, bool state)
    • 编写方法 public static bool Pressed(Keys key)
  • 编写 SnakePart

    该类仅有两个变量 XY,以及一个构造函数,构造函数的作用就是为 XY 赋值。

  • 编写 Direction 枚举

  • 编写 SnakeForm 表单

    • 添加一个 PictureBox 控件,命名为 pbCanvas,并将大小设置为 320 * 240,背景色设置为 LightSkyBlue
    • 调整表单大小
    • 添加 SnakeForm_KeyDownSnakeForm_KeyUp 事件
    • 添加 pbCanvas_Paint 事件,该事件的处理函数就是调用 draw()
    • 添加一个 _score 变量
    • 添加一个 _gameover 变量
    • 添加一个 _direction 变量
    • 添加一个 _snake 列表变量
    • 添加一个 _food 变量
    • 添加一个 _gameLoop 变量
    • 添加一个 _snakeLoop 变量
    • 添加一个 _snakeRate 变量
    • 初始化各变量,设置定时器变量的回调方法和回调间隔(gameLoop: 1000 / 60,snakeLoop:1000 / _snakeRate),并启动定时器,调用 startGame
    • 编写方法 startGame()
      • 重置变量
      • 实例化 head 并添加进 _snake
      • 调用 generateFood
    • 编写 generateFood()
      • 随机产生一个 SnakePart 并赋值给 _food,需要确保新产生的 _food 不在蛇身上
    • 编写方法 gameover()
      • _gameover 置为 true
    • 编写方法 draw()
    • 编写方法 updateGame()
    • 编写方法 updateSnake()
原文地址:https://www.cnblogs.com/platobeing/p/3815034.html