前言
在童年回忆中,有两个游戏是最想复刻的,其中一个就是《超级马里奥》。上大学后学会了编程,做过俄罗斯方块、扫雷、贪吃蛇、飞机大战、坦克大战、打砖块等经典游戏,但一直没有从头到尾做完一个超级马里奥,因为它比前这些游戏要稍微复杂一些,之前找过几个别人的实现,都有大几千行以上。
几年前我在 YouTube 看到一个大佬的视频,他用了非常简洁的思路,借助现代 C++ 的语法,只用 2000 行就做了一个超级马里奥(用 clang-format 将大括号换行后只有 1800 行)。
我迫不及待地学习了一遍,当时也记录了一些文档。前几天有人要我推荐项目,我马上想到它,然后顺便把前的文档重新清理和补充了一下,构成此文,按介绍把该项目推荐给大家。
根据理解,该代码是作者一气呵成的,并未做故意优化,所以如果要优化,可更为精简。优化可当作作业去做,我也总结了 8 点优化建议放这里,大家可参考。
该约 2000 行的 C++ 项目不仅完整恢复了初代马里奥的核心玩法,更是一个精心设计的软件工程示例。无论你是否要学习游戏编程,学习该项目的源码都能带给你意外的收获。

