完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
基于STM32的贪吃蛇小游戏
初学32一个月,学的并不多,便想着做一个贪吃蛇小游戏,因为有51单片机做贪吃蛇的经验,所以实现出来并不困难。 作品简介 游戏面版将在4.3寸480*800)液晶上显示,初始为一个长度为二的小蛇,通过吃果子慢慢变大,当长度到长度时,赢得游戏。碰壁及碰到自己都会死亡,结束游戏 在游戏开始之前可以通过点击触摸屏中央的start字样开始游戏。游戏结束会出现胜利或死亡界面,并显示你的得分,死亡后点击again可再次游戏。 控制模式是通过点击触摸屏上的上下左右来控制小蛇的方向。 游戏过程中,可以看到屏幕右下的分数显示。还可以通过点击key0按键调节小蛇速度。 元器件: 1.STM32F1开发板; 2.TFTLCD4.3寸电容触摸屏; 软件:Keil uVision5 设计思路: 关于小蛇的移动与显示:可以事先设定一个变量snake_len用来存放小蛇的长度,在定义两个数组,分别用来存放小蛇的各点x,y坐标,定义一个变量存放小蛇的运动方向。 每次小蛇的移动,通过运用定时器4来调节小蛇速度以及执行移动函数,移动函数的思想就是当每次要移动时都从蛇头坐标开始,依次赋予后面的坐标,然后蛇头坐标就按照小蛇的运动方向进行改变。 每次运动都进行是否成长,是否死亡或胜利的判定。 我将改变小蛇运动方向的方法就是点击触摸屏上的上下左右的图标,运用定时器3不停的判定是否点击触摸屏的某个位置。如果判断成功就会执行相应的动作。 我加了一个游戏过程中改变小蛇的运动速度,我想到的是运用定时器5,不停的判定key0按键是否被按下,如果按下就加快或剪短移动函数执行时间的间隔。 关于实时的分数显示,就是在每次成长函数触发后刷新,要先事先清除之前分数,避免数字重叠。 总结: 小蛇在吃完果子的移动的过程出现尾部闪烁,可以通过添加短时间的delay来消除,效果还不错。 游戏结束后,我加了一个返回重新开始的功能,我用的goto语句,确实不是很方便,极其容易出错,当时没用想到可以再在外面嵌套一个循环。 开始界面嫌麻烦,做的十分简陋,可以在加点东西。 代码 #include “led.h” #include “delay.h” #include “key.h” #include “sys.h” #include “lcd.h” #include “usart.h” #include “24cxx.h” #include “touch.h” 不知道为什么粘贴不了,我把代码用压缩包发出来。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:19 , Processed in 0.850851 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号