1. 背景
继上一篇说到的酷跑类小游戏,这一篇呢来详细讲解一下设计程序和思路,会给屏幕前的你一些提示,当然看完上一篇再来看这一篇会比较好,这篇文章也会相对枯燥,但是我会尽可能的讲的有趣一点,当然如果觉得不够有趣,欢迎评论,我也会加以改进,哈哈,接下来进入主题吧。
2. 设计
首先是选型,这边采用一款华大的开发板,华大半导体是咱们中华大国自己的开发板,所以大家热情应该更加起来哈,先来看看这块开发板的容貌如下图。
开发板正面.jpg
1
接下来选好型之后就是选屏幕了,其实这里可以不用选择,因为华大开发板自带OLED屏幕,那一切就都简单了呀,首先寻找这个OLED屏幕的驱动程序,然后让屏幕能够显示内容,这一步应该对于大家来说比较简单,为什么要先点亮屏幕呢?因为咱们这次设计的核心就是屏幕呗。这块屏幕用的驱动是SSD1306对于老玩家来说,应该是不陌生的,贴上OLED屏幕初始化程序吧。
1.jpg
屏幕初始化成功那就要显示内容了呀,接下来拿出取模软件,开始取模,由于这个驱动程序本身自带一些字符字模,所以这边只取需要显示的汉字模,这边取“面包板社区”和“二哲科技”这9个字的字模。取模结果如下图。
2.jpg
2
取完模之后就是显示了,一开始显示这些内容,当按键按下时开始游戏,接下来才是重点,这边先初始化按键中断,华大开发板的按键中断如下。
2.jpg
主要在回调函数里面来进行一些处理,比如判断游戏状态,如果是初始界面,则按下按键开始游戏,如果在游戏中按下按键则跳起来,如果游戏结束,按下按键则开始新的游戏。按键回调函数内容如下。这里把初始化界面和游戏结束使用同一个方案执行。
3.jpg
按键的好了接下来就是绘制障碍物的函数了,这里呢采用了随机数来作为障碍物出现的位置,然后为了避免两个障碍物离得太近,还加入了一些固定值,让障碍物之间至少隔一定得距离,同时将这些障碍物得位置保存在数组中,数组中为1的则是障碍物,数组为0的则是正常的平路,贴上障碍物产生的函数。
4.jpg
再贴上绘制障碍物的函数。
5.jpg
最后就是绘制人,人所处得列不会改变,那么只需要改变人所处得行,本来想用一个点来代替人,但是觉得太小,就用2x2的像素点来代替人,由于显示屏显示内容是按照一页一页的,那么在页的交界处就会有一些问题,需要对绘制做一些特殊处理,下面是绘制人的函数。
6 1.jpg
6 2.jpg
绘制人的函数好了,那就剩人当前应该处于什么位置了,这里根据按下按键来使人的位置上移,实现跳起来的效果,下面贴上人位置的函数。
7.jpg
最后就是碰到障碍物的判断了,由于障碍物只在平地上突起一点点,那么就可以根据人即将在平地时与障碍物之间行坐标的距离来判断,当距离为10时说明碰到障碍物,那么,就可以判断游戏结束啦~下面贴上碰到障碍物的函数。
8.jpg
以上就是这次设计,下一篇展示效果并分享源码,这一篇可能有点枯燥,下一篇一定会让你开心的~