搜索

[RISC-V MCU 应用开发] 【RISC-V MCU CH32V103测评】Part3:跑酷类小游戏Demo

[复制链接]
309|20
 楼主 | 2020-11-16 15:38 | 显示全部楼层 |阅读模式
1.介绍
花了一下午时间移植了之前的跑酷类小游戏,由于开发板上只有一个复位键没有用户按键,所以就使用了TouchKey,同时使用IIC驱动OLED屏幕,查看手册IIC的引脚在PB8(SCL)和PB9(SDA)上,使用UART上传游戏状态,整体游戏设计难度不高,只使用了三个外设。
2.设计
首先设计的是IIC驱动OLED屏幕这个可以在我的上一篇帖子【Part2:IIC驱动OLED屏幕】上看一下,由于每个例程都带有UART功能,所以UART部分基本不需要进行开发,OLED屏幕可以驱动起来之后就开始驱动TouchKey了,这个外设的驱动例程官方已经给出,通过观察例程的UART输出,可以知道Touch输出的是ADC的值,如图1。
0.png

图1

那么就需要进行按钮按下的设计,通过观察,不触摸时ADC的值大概在4000+,按下之后根据不同的人,ADC值约在3000以下,所以这边就设计当ADC小于3000则说明按键按下,并同时让按下标志位置1,下面是我的按键按下判断的代码,将下面一段放到函数中,返回Touch_Click_flag标志位,然后判断是否为1即可。
  1. static u16 ADC_Click_flag = 0;
  2.     static u8 Touch_Click_flag = 0;
  3.     u16 ADC_val;

  4.     Touch_Click_flag = 0;
  5.     ADC_val = Touch_Key_Adc(ADC_Channel_2);
  6.     if(ADC_val < 3000 && ADC_Click_flag == 0)
  7.     {
  8.         ADC_Click_flag = 1;
  9.         Touch_Click_flag = 1;   //判断这个标志位,可以得到是否产生一个按下事件
  10.     }
  11.     else if(ADC_val > 3000)//等待抬起
  12.     {
  13.         ADC_Click_flag = 0;
  14.     }
  15.     printf( "TouchKey:%04d\r\n",  ADC_val );

  16.     if(ADC_val & 0x8000)
  17.     {
  18.         printf("This value is discarded\r\n");
  19.     }

  20.     TKEY_CR |=0x08000000;  //Clear Flag
复制代码
按钮部分完成了之后,就开始移植整体逻辑部分了,由于之前写的代码可移植性比较好,所以直接拿过来修改一小部分就可以用了,将刷屏判断等代码放入到主函数中,如下图2。
1.png

图2

先来看一下在游戏过程中,上位机显示的内容,0为未开始,1为正在游戏,2为游戏结束,2只会出现一次,1次之后便是游戏未开始(0)如图3。
2.png

图3

最后我们来看一下游戏的整体效果的动态图,游戏中是可以实现双连跳的,这个几连跳可以通过程序中的一个宏进行修改。
3.gif

图4

3.总结
从这次移植小游戏的过程中,踩的坑比较少,不过有一点不太好的是,定时器中断的例程似乎并没有提供,这让我的一些程序只能在主程序里面跑,这样有点难受,希望官方能够出一个这样的例程。RISC-V MCU移植性还是非常好的,但是呢外设都在同一个文件,所以移植的时候只能复制文件内容,而不能将文件直接进行复制。对于测评,我比较喜欢做一些小游戏,一般都会使用板载的外设进行测评,在以后的测评中也会多制作一些好玩的小游戏,也希望喜欢小游戏的童鞋持续关注我哈~
@21小跑堂 原创文章
下面放出小游戏的固件,使用的是华大板子上的OLED屏幕:
游客,如果您要查看本帖隐藏内容请回复

使用特权

评论回复

评论

李盈余 2020-11-19 16:50 回复TA
太棒了 
zhengfish 2020-11-18 21:36 回复TA
酷 了 酷 了 
w494143467 2020-11-16 19:09 回复TA
定时器中断例程在沙发的位置,大家可以去那下载~ 
| 2020-11-16 16:58 | 显示全部楼层

使用特权

评论回复
 楼主 | 2020-11-16 18:36 | 显示全部楼层
RISCVLAR 发表于 2020-11-16 16:58
定时器中断例程https://bbs.21ic.com/icview-3043066-1-1.html

到时候试一试,后面有时间弄一下。

使用特权

评论回复
| 2020-11-16 20:10 | 显示全部楼层
超级玛丽

使用特权

评论回复
| 2020-11-16 20:20 | 显示全部楼层
挺有意思的,期待楼主公布源码

使用特权

评论回复
| 2020-11-16 21:39 | 显示全部楼层
请问有没有源码吖,想学习一下

使用特权

评论回复
| 2020-11-17 08:27 | 显示全部楼层
图4总刷不出来???

使用特权

评论回复
 楼主 | 2020-11-17 09:21 | 显示全部楼层
rh10000 发表于 2020-11-17 08:27
图4总刷不出来???

图四有点大,是个动图,所以不好刷出来。

使用特权

评论回复
 楼主 | 2020-11-17 09:24 | 显示全部楼层
发呆二极管 发表于 2020-11-16 21:39
请问有没有源码吖,想学习一下

有,后面会放出来。

使用特权

评论回复
 楼主 | 2020-11-17 09:25 | 显示全部楼层
Taoyukai 发表于 2020-11-16 20:20
挺有意思的,期待楼主公布源码

后面会公布的。

使用特权

评论回复
| 2020-11-18 00:54 | 显示全部楼层
w494143467 发表于 2020-11-17 09:24
有,后面会放出来。

期待~

使用特权

评论回复
| 2020-11-18 10:32 | 显示全部楼层
赞美

使用特权

评论回复
| 2020-11-18 16:19 | 显示全部楼层
感谢分享,谢谢!

使用特权

评论回复
| 2020-11-18 19:32 | 显示全部楼层
期待源码,想玩

使用特权

评论回复
 楼主 | 2020-11-18 20:53 | 显示全部楼层
LIzs6 发表于 2020-11-18 19:32
期待源码,想玩

哈哈,好的好的。

使用特权

评论回复
| 2020-11-19 14:00 | 显示全部楼层
期待源码

使用特权

评论回复
 楼主 | 2020-11-19 14:34 | 显示全部楼层

会有的!

使用特权

评论回复
| 2020-11-20 08:40 | 显示全部楼层
谢谢分享【跑酷类小游戏Demo 】

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

在线客服 快速回复 返回顶部 返回列表