前言
因为接触到了 bpibit 的 LED 矩阵,所以萌生了写出一个贪吃蛇小游戏
记录一下编写程序的过程以及思考,毕竟还是一只菜鸟,所以在程序逻辑、代码优化上还是有些不足,希望有大佬能够指出,我会认真学习大佬给的建议
这篇文章是以上一篇文章为基础写的,所以有兴趣可以看我上一篇文章ESP32: BPI-BIT 开发板外设 按键与LED矩阵 学习(Arduino)
划分部分
我把贪吃蛇小游戏分为几个部分
- 蛇的移动与碰撞
- 苹果的生成
操作工具
测试使用的开发板: bpi-bit v1.2
应用到的外设: WS2812b
测试使用的软件:PlatformIO
- 不知怎么安装可看这篇文章
Arduino : 下载安装 PlatformIO 并新建工程
蛇的移动与碰撞
将编号转换为坐标轴
因为在void SetPixelColor(uint16_t indexPixel, typename T_COLOR_FEATURE::ColorObject color)
中,输入的是面板的整数,不利于后面蛇方向移动程序的编写,所以写了一个将(x,y)矩阵变为整数编号形式的函数
// 将(x,y)变为整数编号
int Count(int x, int y)
{
return (x - 1) + (y - 1) * 5;
}
这样就把板子的 LED 面板变成了 XY 矩阵的形式,整个程序都是以 XY 矩阵为基础的
编写了一个 shake 类
class Snake
{
public:
int snakeLen = 3; // 蛇的长度
// 蛇身体的位置
int *snakeLenX = new int[snake