T-Rex-duino-来自Arduino的Chrome浏览器的恐龙游戏的克隆

有了这样的设备,当页面无法加载时,Firefox用户也将能够播放T-Rex。



首先,我对自制的超简约便携式游戏机感兴趣。特别是ATtiny85 + OLED显示选项非常受欢迎:


因此,一个人已经为该平台制作了 13多种游戏。

这是一个有趣的小工具,但是组装后我就不想玩很长时间了。以我的口味,可用的游戏不够“快速”,无法保持兴趣至少几分钟。因此,我决定制作一个自己玩10到20分钟甚至可能是2到3次的玩具。幸运的是,人们长期以来一直在欣赏相对有趣的游戏,这种游戏令人上瘾并且足够简单,可以放入微控制器中。


休假4天后,我得到了这样的克隆。


Youtube视频

不幸的是,无法装入ATtiny85 ROM,所以我不得不使用经典的Arduino。现在我什至认为这是一个更好的选择,因为 Arduino更易于访问,更容易刷新,并且有很多扩展空间。

游戏还具有其他“配件”:Ti-Rex可以弯腰(尽管这不是必需的,您可以跳!),添加了“ Lives”以扩展游戏性。

您可以玩游戏的参数(例如速度,“敌人”的频率等),许多设置都放在草图的开头。

部件


在最低版本中,您将需要一个Arduino Uno / Nano / Mini,SSD1309控制器上的128x64 OLED显示屏以及一个或两个按钮。在便携式版本中,您将需要添加带有充电电路的电池或多个电池。


方案。

组装后,您需要从目录中刷新草图t-rex-duino/(链接到文章末尾的存储库)。

一些实施细节


对于想要制作自己的迷你游戏的人来说,以下一些详细信息可能会派上用场。我试图以一种方便的方式编写“引擎”,以便基于渲染精灵并检测其“碰撞”在其上制作游戏(通常,这几乎是“引擎”的仅有两个功能,整个游戏都基于它们构建)。现在仍然有很多免费资源,在性能和内存方面超过50%。

因为 最初,我依靠的是一个小型微控制器,其中只有512字节的RAM和比arduino石头的频率低2倍的频率,因此为游戏编写了带有“虚拟”缓冲区的快速渲染,该渲染可将屏幕垂直或水平分割。




垂直虚拟缓冲区至少需要128个字节的内存,而水平缓冲区至少需要8个字节。在这种情况下,整个屏幕的完整缓冲区将占用1kb。应该选择渲染的方向,使其与屏幕上的主要移动方向一致(失真较小)。在草图的开头,有一个渲染模式的开关,以演示这两个选项的操作。

游戏中的每个精灵都由屏幕上需要渲染的一个点和两个1位位图描述:“数据”和“掩码”。这两个位图描述了具有“透明度”的单个图像。那些。子画面中的每个像素可以是“白色”,“黑色”或“透明”。除项目代码外,还有一个Python实用程序,用于game-assets-gen/img-conv.py将png转换为相应位图的c数组。要开始重新生成现有位图的过程,可以运行gen_assets.batgame-assets-gen/

另外,我还给出了使用的坐标系的说明图。


参考文献


项目存储库:github

可用方案,Arduino的资源,一个用于将图像转换为游戏中使用的位图格式的实用程序。

显示模块:diymore 2.42英寸128x64 OLED显示模块SSD1309-

就是这样,谢谢收看

All Articles