目录

游戏规则

硬件需求

编程方式

编程思路及主要代码

背景设置及任务创建

开始任务

地鼠出洞控制任务

地鼠出洞控制代码示例

触摸屏控制任务

基础代码扩展

基础工程链接

实验现象


游戏规则

  • 每800ms一只老鼠完成出洞回洞两次操作
  • 如果在老鼠出洞时成功打到老鼠则加一分

硬件需求

  • STM32F103ZET6芯片
  • 2.8寸触摸屏

编程方式

  • UCOSIII实时操作系统

编程思路及主要代码

背景设置及任务创建

  • 设置背景 3*3 方格,创建 地鼠
  • 创建三个任务(开始任务、地鼠控制任务、触摸屏控制任务)、创建一个软件定时器

开始任务

  • 创建地鼠控制任务、触摸屏控制任务,并删除任务自身

地鼠出洞控制任务

  • 利用软件定时器回调函数产生随机数播种控制地鼠出洞坑位
  • 每400ms设置一个任务调度点
  • 第一个调度点地鼠出现
  • 第二个调度点地鼠消失

地鼠出洞控制代码示例 

void MOUSE(void *p_arg)
{OS_ERR err;while(1){srand(time); //随机数播种flag = rand()%9+1;//产生随机数switch(flag){case 1: Paintphoto( 5,40,50,50,RED);mouse=1; break;//(1,1)case 2: Paintphoto( 5,40,100,50,RED);mouse=1; break;//(1,2)case 3: Paintphoto( 5,40,150,50,RED);mouse=1; break;//(1,3)case 4: Paintphoto( 5,40,50,100,RED);mouse=1; break;//(2,1)case 5: Paintphoto( 5,40,100,100,RED); mouse=1;break;//(2,2)case 6: Paintphoto( 5,40,150,100,RED); mouse=1;break;//(2,3)case 7: Paintphoto( 5,40,50,150,RED); mouse=1;break;//(3,1)case 8: Paintphoto( 5,40,100,150,RED);mouse=1; break;//(3,2)case 9: Paintphoto( 5,40,150,150,RED);mouse=1; break;//(3,3)}OSTimeDlyHMSM(0,0,0,400,OS_OPT_TIME_PERIODIC,&err);//第一个任务调度点switch(flag){case 1: Paintphoto( 5,40,50,50,BROWN);mouse=0; break;//(1,1)case 2: Paintphoto( 5,40,100,50,BROWN); mouse=0;break;//(1,2)case 3: Paintphoto( 5,40,150,50,BROWN);mouse=0; break;//(1,3)case 4: Paintphoto( 5,40,50,100,BROWN);mouse=0; break;//(2,1)case 5: Paintphoto( 5,40,100,100,BROWN);mouse=0; break;//(2,2)case 6: Paintphoto( 5,40,150,100,BROWN);mouse=0; break;//(2,3)case 7: Paintphoto( 5,40,50,150,BROWN);mouse=0; break;//(3,1)case 8: Paintphoto( 5,40,100,150,BROWN);mouse=0; break;//(3,2)case 9: Paintphoto( 5,40,150,150,BROWN); mouse=0;break;//(3,3)}OSTimeDlyHMSM(0,0,0,400,OS_OPT_TIME_PERIODIC,&err);//第二个任务调度点}
}

触摸屏控制任务

  • 如果触碰到对应方格并且打到地鼠得分加一

基础代码扩展

由于要考研了,所以只做了个简易版的练练手,以下是我想的一些思路仅供参考

  • 设置一个另外颜色的地鼠打到减分
  • 如果分数为负显示游戏结束
  • 设置关卡,关卡越高,地鼠出洞回洞越快,难度也就越大

当然还有很多改善方法,大家可以集思广益做一个超强版打地鼠,哈哈哈

基础工程链接

百度网盘 请输入提取码

提取码:6666

实验现象

后续传到b站 

STM32——打地鼠相关推荐

  1. STM32掌机教程9,完成掌机

      这是教程的最后一篇了,完成之前的任务,到这里一切都应当水到渠成,没什么好讲的了.结尾可能略显仓储,未尽之处,自己看代码吧,看不懂的地方可以在下边评论. 修改BGM   之前已经实现了根据不同的按键 ...

  2. STM32单片机小游戏触摸屏打地鼠2.8寸TFT液晶显示屏计分和关卡

    实践制作DIY- GC0075-单片机小游戏打地鼠 一.功能说明: 基于STM32单片机设计-单片机小游戏打地鼠 功能介绍: 硬件组成:STM32F103RCT6最小系统+2.8寸TFT电阻触摸屏+2 ...

  3. 【STM32学习 自制STM32游戏机】

    2020年科协招新需要出训练题,让新生了解一下单片机,所以我这边打算出一道游戏机的题,让新生用单片机实现一个游戏机,共3个游戏可选,分别为:贪吃蛇,打地鼠和推箱子,由于是针对于0基础新生,所以在指标上 ...

  4. STM32掌机教程2,掌机的原理

    本文用到的资源PDF格式的原理图和集成库资源 打地鼠的逻辑   打地鼠的逻辑很简单:我点亮某个LED,然后开始计时.如果在规定的时间内按下了LED对应的按键,那么加分,点亮下一个LED.按错按键,或者 ...

  5. STM32掌机教程4,STM32驱动OLED屏幕

    屏幕显示英文字符   有个屏幕,掌机的可玩性可以大大增强,打地鼠玩腻了,可以玩个贪吃蛇,俄罗斯方块,以及其他需要开动想象力的游戏.并且,以前总是玩别人的游戏,现在可以自己写游戏,岂不美哉.   后来我 ...

  6. STM32掌机教程6,电子琴

      本节原来是想讲一讲无源蜂鸣器发声的原理,用于添加BGM功能.为了讲原理,就写了一些通俗的代码,没想到越写越多,后来,干脆就形成了一个小小的项目吧--基于STM32与无源蜂鸣器的电子琴. 灯光效果 ...

  7. STM32掌机教程1:我打算做一个开源掌机

    电子开发对我的影响 爱好作为工作,既能养家,又开心,不用上班像上坟. 动手实现自己的想法,成就感满满. 思维方式的影响:把如何解决问题放在第一位. 什么都能修,自带省钱属性    然而,我发现,很多学 ...

  8. 【嵌入式】openmv与stm32的串口通信

    参考:(文中部分图/文字/代码来自以下文章,部分内容由于时间久远已经找不到原作者,可联系注明或删除) PYTHON串口数据打包发送STM32接收数据解析 openmv中文文档 这里以openmv循迹代 ...

  9. 【转载】 stm32之PWM

    发现这位博主的博客被大量的转发,我也转载一篇,谁叫人家写的好呢. 原文地址:http://blog.sina.com.cn/s/blog_49cb42490100s6uh.html 脉冲宽度调制(PW ...

最新文章

  1. startprocessinstancebykey()里面填写的参数_3种方法,快速学会在Word文档里面如何插入表格...
  2. dz seo插件_河北seo优化网络推广报价单
  3. 11.频域里的卷积——介绍,傅里叶变换和卷积,快速傅里叶变换(FFT)_1
  4. ActiveMQ的用途
  5. jQuery has(),not()和filter()函数示例
  6. 深入理解Intel Core Microarchitecture
  7. DB2远程链接数据库编目命令代码
  8. 支付宝手机网站支付 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足
  9. win7删除桌面计算机图标怎么删除,Windows7电脑桌面ie图标怎么删除不了?
  10. Hackthebox靶场连接
  11. 用python怎么读文件_python怎么读文件
  12. c语言电报,[编程入门]电报加密-题解(C语言代码)
  13. 每日计划(2)——大二
  14. python 编写获取阿里巴巴行业分类数据代码
  15. Spring Cloud(十四):微服务灰度发布 --- Discovery
  16. 独享云虚拟主机和云服务器,共享虚拟主机和独享虚拟主机的区别
  17. cb32a_c++_STL_算法_查找算法_(5)adjacent_find
  18. 专家:应对禽流感需储备不同种药物
  19. 后台管理系统的权限以及vue处理权限的思路
  20. 如何更好管理控制报销费用?

热门文章

  1. SEO一场智慧心理之战
  2. Selenium Webdriver——去哪儿网输入实例
  3. LattePanda 安装ubuntu 20.04 和 openvino
  4. Openshift API调用方法
  5. 如何删除CSDN上自己上传的资源方法汇总(第一种方法神操作,亲测有效)
  6. 如果自己组装一个台式计算机有哪些,2015电脑组装教程:史上最全自己组装电脑教程...
  7. 动画程序时长缩放是什么意思_1分钟做出高逼格动画!PPT中自带的小功能帮你一键搞定!...
  8. 【黑客免杀攻防】读书笔记1 - 初级免杀基础理论(反病毒软件特征码提取介绍、免杀原理、壳)...
  9. 俺是东北人,俺骄傲!
  10. 说说我的专业计算机作文,电脑让我欢喜让我忧作文600字