基于STM32F103的学习平台移植贪吃蛇游戏
这是我参加“寒假在家一起练”活动所做的项目,是利用硬禾学堂的STM32F103的学习平台学习并移植贪吃蛇游戏到平台上。
标签
嵌入式系统
STM
Awng
更新2021-03-03
1881

1项目需求

       使用STM32学习平台系统移植经典贪吃蛇游戏,并可用板上的4个按键操作,同时蜂鸣器能够发出声音,姿态传感器能够感知板子旋转的方向,自动将屏幕调整到合适观看的角度。

2设计思路:

(1)贪吃蛇在行动过程中,只有头的位置发生了变化,所以只需要对头部坐标做特殊处理即可,而在吃到食物后头部坐标直接变为食物坐标就实现了贪吃蛇吃到食物后身长增加的效果。

(2)运用链表的特性,蛇的每一个节点就是链表的节点,节点的内容是该点的x,y坐标。遍历链表逐个读取蛇身的每个节点里面的x,y坐标,根据该坐标在屏幕上描点,即可描绘出蛇的形状来。

(3)可以事先设定一个变量用来存放小蛇的长度,再定义两个数组,分别用来存放小蛇的各点x,y坐标,定义一个变量存放小蛇的运动方向。蛇的运动的原理是从蛇尾节点开始,其x,y坐标等于前一个节点的坐标,直至到头节点,头节点的新x,y坐标跟蛇运动的方向有关。

(4)在地图上随机生成一个食物。这里的随机数是利用不断变化的时钟进行求余,得到的随机坐标后,先判断该左边是否可用,若是已经存在东西(蛇身或者边框)则继续获取随机数,如此反复直到得到一个空的随机坐标。所以,当游戏玩到最后,蛇身很长的时候(界面没有多少空白点),产生食物的时间会长很多。

(4)每次运动都进行是否成长,是否死亡的判定。

(5)改变小蛇运动方向的方法就是按平台上的4个按钮,运用定时器不停的判定是否按了这四个按钮中的一个。如果判断成功就会执行相应的动作并用蜂鸣器发出声音提示。

(6)运用姿态传感器判断平台方向,使游戏画面保持合适的角度。

3完成的功能和性能

       能够基本实现贪吃蛇游戏功能,包括小蛇的显示及移动、果子的随机生成,小蛇吃果子变长、判断小蛇是否触碰边框或者自身,当游戏结束时自动进行下一轮游戏。

       游戏能够通过平台上的四个按键进行控制小蛇的运动,每次成功变换小蛇方向平台会使用蜂鸣器发出声音进行提示。

       平台会通过姿态传感器判断自身方向,每当平台旋转时,游戏画面自动调整到合适的游玩角度。

4难题及解决方案

(1)小蛇在吃完果子的移动的过程出现尾部闪烁,可以通过添加短时间的delay来消除,效果还不错。

(2)游戏结束后,我加了一个返回重新开始的功能,我用的goto语句,确实不是很方便,极其容易出错,当时没用想到可以再在外面嵌套一个循环。

5未来计划及建议

       当前游戏游玩功能完善,但是没有制作界面功能,当程序下载到平台上时没有开始界面及操作便直接进行游戏,游戏结束时也没有任何界面操作便直接开始下一轮游戏,游戏也没有积分系统,无法直观的看的小蛇的长度。所以接下来我计划设计一个开始界面,并制作一个积分系统,使游玩体验更加丰富。如果可以的话,我还想加入一个积分排名系统,能够记录各次游玩所获得的积分,并在开始界面进行排名展示。

附件下载
贪吃蛇.rar
团队介绍
北京理工大学/信息与电子学院
团队成员
王辰
北京理工大学信息与电子学院学生
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号