文号
945247
阅读
2359
回复
3
收藏
2
51单片机移植catacomb3d
2025/07/03
IP:河南
摘要:C51 3D游戏

你对51游戏的印象:贪食蛇,俄罗斯方块,还是打飞机?

这次来个好玩点的,catcomb3d!

玩arduino的肯定比较熟悉,这是一个arduboy里的游戏。32u4能跑,stc8h8k64u一定就也可以。


项目不大,顶天3000行代码。但移植它最大的难题是用c++写的项目,但正常玩51都用的是c。除非你想手动翻写,我们还是清出IAR EW8051吧。


移植代码有时候真的比自己写一遍有学习价值。

class封装和::访问,严格保证了变量不泄露到不该它去的地方污染环境,让我反思了全局变量随处乱丢的坏习惯。

#define和enum class(好吧这个给我带来不少麻烦,因为iar不支持。。。)来给赋予特定标识数字意义,而不是1,2,3,4直接往里扔。

视角变换和透视除法让我重温了一下图形学的内容,位域,定点运算,三角查表,放缩查表,矢量纹理,各种优化让我眼花缭乱


原来一直在质疑oi学的算法可能除了做题没别的用处,越往后越发现我错飞了。太简单的就不说了,就这个游戏里面,搜索,优先队列,图论,空间细分等等,包括各种熟悉的思路和结构,都活生生的出现在游戏里,不断激起我沉睡的回忆


总之这个游戏确实让我想了很多,学了很多。作者中间没怎么写注释,幸亏他思路清晰外加我有Deepseek帮助,才能让我理解人家的思绪。要是我写的东西给出去,乱七八糟估计deepseek也得蒙吧


展示一下效果吧

mmexport1751492879047.mp4 点击下载

mmexport1751622032472.jpg

attachment iconcatacomb.zip593.74KBZIP1次下载

attachment iconcatacom3d.hex113.18KBHEX0次下载

玩这个门槛很低,你只需一片stc8h8k64u,6个按键,一块12864oled就ok了。

不想编译,没IAR?hex文件直接奉上了。

[ 修改于1年4个月前 - 2025/07/04 17:51:48 ]
nichengyan作者
1年4个月前IP:河南
945349
1楼

连电路也不想搭?电脑总有吧。windows版也给一下吧。用的devc++编译,显示用了个opengl。

attachment iconcatacomb3d_PC.zip240.36KBZIP2次下载

引用
评论
2
1年4个月前IP:广东
945363
2楼

可以玩魂斗罗之类的么

引用
评论
nichengyan作者
1年3个月前IP:河南
945406
3楼
引用zjsx8192发表于2楼的内容
可以玩魂斗罗之类的么

我自己肯定写不出来,关键看大佬们的项目有没有方便移植的了😅😅😅

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的