1作者: jylefv4 天前原帖
CoshUI 是一个用户界面引擎,旨在与不同的游戏框架相结合,并轻松融入现有的游戏循环中。它与后端无关,这意味着相同的用户界面代码可以在不同的框架和图形绑定中运行,视觉上仅有微小的差异。 当前支持的后端包括 Pygame、Raylib、PyOpenGL 和 ModernGL,切换后端只需更改一个参数(例如,从 PygameBackend(screen) 切换到 RaylibBackend() 等),用户界面代码保持不变。 需要注意的是,CoshUI 在技术上表现得像一个即时模式用户界面库,但它借鉴了 React 的思路,每帧对状态进行协调,这使得它能够像一个保留模式系统一样工作。 它的功能包括: - 使用上下文管理器的 API,带来“声明式”的感觉 - 通过“信号”实现的内置交互系统 - 通过补间动画实现的动画系统 - 自定义和预制主题 - 按需样式化节点 - 以及更多功能 CoshUI 是我在不到两个月的时间里开发的项目,最初是为了研究我正在进行的另一个低级项目的用户界面系统,但最终这个想法变得过于庞大,我不得不将其发布。 我非常希望能收到关于代码和 API 设计的反馈,这也是我进行这项“研究”的主要原因。 请注意,这个项目非常年轻,我是一名自学成才的独立开发者,利用大学新生前的空闲时间制作这个项目和文档。我可能遗漏了很多内容,还有更好、更简洁的做法,以及许多可以提升项目的功能。但这归根结底是学习材料,如果大家能对此发表一些看法,我将不胜感激。 代码库: <a href="https://gitlab.com/jylefv/CoshUI" rel="nofollow">https://gitlab.com/jylefv/CoshUI</a>(主库) <a href="https://github.com/JyleFV/CoshUI" rel="nofollow">https://github.com/JyleFV/CoshUI</a>(镜像) 文档: <a href="https://terrarizer03.github.io/coshui-docs" rel="nofollow">https://terrarizer03.github.io/coshui-docs</a>(有未完成的页面) 安装: [pip install coshui]