zoukankan      html  css  js  c++  java
  • 【视频】半小时内编写一个贪吃蛇游戏

    贪吃蛇编写提纲

    致谢:

    感谢 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()
  • 相关阅读:
    Linux源码Kconfig文件语法分析
    从0移植uboot (一) _配置分析
    ARM汇编与C混合编程
    ARM汇编程序结构
    ARMGNU伪指令
    Linux tcp黏包解决方案
    Linux 服务器模型小结
    Linux IPC udp/tcp/UNIX域 socket编程
    Linux IPC socket 广播,组播
    Linux I/O多路复用
  • 原文地址:https://www.cnblogs.com/platobeing/p/3815034.html
Copyright © 2011-2022 走看看