Catacomb3D完整版
3D测试整完之后,又陆陆续续把其他的游戏内容给移植了一下。读大佬的代码写的是真的好,可惜全是c++😑用keil太麻烦了,所以只好用iar去编译了。
我这个iar版本还不太高,c++支持的不是很好,像enum class,for里面用:遍历容器这类的它都不认。总之用IAR也没方便到哪去
算了,都作品展示了先给个效果吧 作为国芯人工智能团队的一员,我们非常感谢您对Catacomb3D完整版移植工作的关注与分享。从您的描述中可以看出,您在跨平台开发、代码阅读与编译工具选择方面展现出了较高的技术素养,尤其是在面对C++语言特性和IAR编译器兼容性问题时,依然坚持完成项目并展示成果,这种精神值得肯定。
关于您提到的“读大佬的代码写的是真的好”,我们深有同感。优秀的代码结构和良好的编程习惯不仅提升了项目的可维护性,也为后续的移植与扩展打下了坚实基础。然而,C++作为一种功能强大但语法复杂的语言,在不同编译器和平台上的支持程度存在差异,这也是我们在进行嵌入式系统开发时需要重点考虑的问题。
针对您使用IAR编译器遇到的限制,如对enum class和范围for循环(for (auto& item : container))等C++11/14特性支持不足的情况,建议您可以考虑以下几点优化方向:
1. 升级IAR版本:若条件允许,尝试升级至更高版本的IAR Embedded Workbench,以获得更好的C++标准支持。部分较新的版本已对C++17特性提供了较为完善的兼容性。
2. 代码适配策略:对于不支持的语法,可以通过手动替换或引入宏定义的方式进行适配,例如将for (auto& item : container)替换为传统的迭代器方式,或通过预处理指令控制不同编译器下的代码路径。
3. 构建工具链优化:如果IAR在某些功能上确实难以满足需求,也可以考虑结合其他工具链,如使用GCC for ARM进行交叉编译,并通过Makefile或CMake管理构建流程,提升开发效率。
4. 模块化与抽象层设计:在项目架构中引入抽象层,将依赖于特定编译器特性的代码封装,有助于降低移植难度,提高代码的可移植性与可维护性。
最后,再次感谢您对Catacomb3D项目的持续投入与分享。我们期待看到更多开发者在不同平台上实现经典游戏的移植与重构,这不仅是对技术的探索,更是对计算机历史的一种致敬。如果您在开发过程中有任何技术问题或需要进一步的支持,欢迎随时交流。
[本文内容由国芯人工智能辅助生成,仅供参考] 大家可能普遍不太爱用IAR,那我的工程大概率发了等于没发。为了让大家也能体验一波到这个游戏,稍后我还是分享hex文件和电路图罢。
想玩这个门槛很低,你只需要:stc8h8k64u 一个,按键6个,oled12864 1片,导线若干就ok了。IO直接检测按键的hex稍后会发。烧进去就能玩了 关于IAR:
请问官方能稍微再给点支持吗?这么好的工具只支持stc8h8k64u是不是也太可惜了?以后芯片更强了,不应该大踏步走进c++时代解放大脑吗?ai32g,ai8051,那一个用c++搞不爽?
目前来看,IAR只能带stc8h8k64u玩,我的8X版c++顶天支持到c++11。相对keil来说优势当然是语言更高级了,缺点吗还是有的但我觉得用多了就能把他们变成优点了 {:4_250:}{:4_250:}{:4_250:}
厉害 原理图和hex搭配食用口感更佳
地板线条:关
贴图:开
贴图类型:矢量
小地图:开
地板线条:开
贴图:开
贴图类型:矢量
小地图:开
地板线条:关
贴图:开
贴图类型:矢量
小地图:关
页:
[1]
2