基于Stm32f407 的贪吃蛇小游戏【正点原子-探索者开发板】手机h游戏「基于Stm32f407 的贪吃蛇小游戏【正点原子-探索者开发板】」
这是我花一个星期完成的一个简单地单机贪吃蛇小游戏项目,芯片是stm32f407,项目是基于正点原子-探索者开发板完成的,有需要的伙伴可以看看,其他开发板也区别不大,主要看算法。
- 运行效果图
开始游戏
main.c中,首先对系统的一些初始化,初始化完后开始游戏,游戏结束后按下按键up键,重新开始游戏。用到硬件有:led,lcd,按键,硬件随机数发生器,蜂鸣器(可选),串口,外部SRAM,flash(存放最高分)。
代码如下:
此头文件主要是引入项目包含源文件的头文件,以及贪吃蛇行进方向定义,蛇体数据结构定义,函数声明。
代码如下:
初始化,本函数主要是对游戏界面进行绘制,以及蛇的数据结构初始化。这里初始化蛇的初始长度为2。
代码如下:
创建食物,在SNAKE_Init()函数里边调用了一个CreatFood()函数,这个函数很简单,就是利用随机数发生器产生三个随机数,分别是坐标x,坐标y和节点颜色,然后调用绘制节点函数LCD_DrawNode();绘制出节点。
代码如下:
在CreatFood()函数里边调用了一个CreatFood()函数,这个函数首先对其颜色进行判断,如果为红色,则表示此节点为蛇头,蛇头放大1.5倍,然后循环绘制出节点。声明:红色在随机颜色表里边不存在。
代码如下:
项目难点核心部分,重点是对指针的处理。指针是C语言最难理解的一部分,若看不懂也没关系,画个指针操作草图理解一下。本项目用双向链表数据结构存储贪吃蛇信息,其中蛇头的前节点指向蛇尾。
代码如下:
蛇移动处理函数,SNAKE_POS变量记录蛇行进方向,周期时间内蛇身向行进方向移动一个单位。
代码如下:
游戏结束,绘制游戏结束界面。
代码如下:
安宁版权声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com