HonestQiao 发表于 昨天 21:50

FireBeetle 2 ESP32-C5+GDI显示屏玩恐龙快跑小游戏

本帖最后由 HonestQiao 于 2025-10-4 21:50 编辑

这篇帖子分享了使用 FireBeetle 2 ESP32-C5 + GDI显示屏,来运行Arduino版本的《恐龙游戏》。


一、《恐龙游戏》了解
在Google的Chrome浏览器中,有一个内置的彩蛋小游戏:《恐龙游戏》(英语:Dinosaur Game)。
这是一款内置于Google Chrome的横向滚动栏形式网页游戏,玩家操控一只像素风格的小暴龙避开障碍物并获取分数。
该游戏由Google的Chrome用户体验团队于2014年开发。



如果你想体验的话,可以在Chrome浏览器的地址栏输入:chrome://dino,就能打开下面的游戏界面:



记住,要在Google的Chrome浏览器中,才有这个彩蛋小游戏。

不过,如果使用的不是Googgle的Chrome浏览器,也可以访问网址 https://dino-chrome.com/ 来体验:




二、Arduino版本的《恐龙游戏》因为Chrome浏览器的《恐龙游戏》简单又有趣,所以爱好者开发了很多衍生移植版本。
在Arduino环境中,也有对应的移植版本,我了解过的有:


[*]Dino-Game-Arduino-Edition
[*]Arduino based Chrome Dino Game


之前,我曾将 Dino-Game-Arduino-Edition 移植到了 AVR64DD32 Curiosity Nano开发板 上,具体可以查看 移植Dino Game(恐龙游戏)到AVR64DD32 Curiosity Nano开发板。



三、移植到FireBeetle 2 ESP32-C5
这次用到的硬件很简单,就是FireBeetle 2 ESP32-C5开发板,以及1.4" 172×320 IPS TFT LCD高清显示屏。
FireBeetle 2 ESP32-C5开发板的扩展板并没有实际用到,可用可不用 。


因为之前移植到AVR64DD32 Curiosity Nano开发板上时,已经对很多配置做了处理,方便后续的移植。
所以再次移植到FireBeetle 2 ESP32-C5 + 1.47 GDI显示屏上的时候,主要就是修改了TFT引脚的设置。
具体的引脚配置,可以参考我之前的文章:FireBeetle 2 ESP32-C5开发板Arduino环境多库点屏大作战

具体的代码,可以下载查看:
在代码中,使用到了Arduino自身的库以及第三方的库,分别如下:
[*]SPI:SPI.h,驱动显示屏用
[*]显示驱动库:Adafruit_ST7789

主要函数说明如下:

[*]*resetFunc():复位设备(重启)
[*]button():按键处理,使用中断调用,提高处理效率
[*]game_over():游戏结束处理
[*]update_game():游戏画面更新处理
[*]display_game():游戏画面主要显示逻辑处理
[*]drawBitmap():位图绘制
[*]setup():设置和初始化
[*]loop():主循环


因为FireBeetle 2 ESP32-C5及扩展板上,没有蜂鸣器,所以声音输出的部分,暂时就关闭了。后续考虑添加蜂鸣器或者用音频功放模块输出声音。

游戏的主界面如下:


[*]在代码中,通过按键,来触发小恐龙的跳跃操作。
[*]在刷新过程中,树木会随机在右边出现,然后持续向左移动,直到到达最左边消失。
[*]根据游戏进行的时长,换算为得分,在顶部进行显示。
[*]画面中的草地,会定时进行更换。
[*]顶部会显示两种不同类型的云,且会持续向右运动,直到消失。

操作说明:操作很简单,就是看到有树过来,就按BOOT按键,让小恐龙跳起来,越过树即可;否则就会game over。


四、游戏展示
编译烧录运行后,运行效果如下:






页: [1]
查看完整版本: FireBeetle 2 ESP32-C5+GDI显示屏玩恐龙快跑小游戏