战舰板新手做的游戏 - FlappyBird

2019-07-21 06:01发布



    大家好,我是Microbai,这是我在论坛第一次发主题帖,主要还是自己太水了,大家不要笑我啊。其实和原子的开发板挺有缘的,去年双12的时候,想买战舰板的,但是暂时没钱了,正好淘宝弄了个免单活动,我给抽中了,就免费获得了手头这块战舰板,后来一直有事就拖着没学,上个月正式开始学习。
    
    原子老师的视频很好,看了就能懂,因为最近一款叫FlappyBird的游戏很火,所以我就想72M主频的STM32能不能跑一个呢,抱着这个想法,花了5天时间研究,到今天终于差不多了,请各位大神给过过目。




    


源码丢上来了,视频土豆还在审核,战舰板可以直接玩,玩的时候注意要把ADC的跳线帽拿掉,靠的是AD产生随机数的,不拿掉柱子是不会变化的。   大致思路说说,就是在外部SRAM里面做了一个大数组[320][240]做了一帧缓冲,所有屏幕相关操作都是在这一帧上面实现的,使用DMA直接丢数据到FSMC接口上,比I/O快多了,然后就是资源的去背问题,所有的图片都是我从手机版上面截图下来的,然后背景 {MOD}都是0X4DF9,然后因为jpg转换软件的关系,蓝 {MOD}的背景 {MOD}会有偏差所以直接判断把0x4df9不显示不可行,后来想到可以用RGB颜 {MOD}来入手,虽然不是0x4df9但是还是蓝 {MOD},所以蓝 {MOD}分量肯定比红 {MOD}多,所以做了一个阈值判断,然后就是场景与场景之间的过渡,一开始准备一个点一个点渐变的,大家可以在源码的engine.c里面看到有个u16 FlappyBird_Frame_MixColor(u16 color_1,u16 color_2,u8 percent)这个函数,这个函数是根据565 {MOD}的关系写的,但是速度慢而且有的时候颜 {MOD}渐变的很恶心,所以后来想到用PWM波控制PB0引脚直接做背光控制,明暗渐变做场景转换什么的最棒了,恩,以上应该差不多了。

改进过的:

                             


最低难度,39分求超越!



            
首页增加难度选择,KEY_UP提升难度,KEY_DOWN降低难度,0-6难度任选




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。