1 分•作者: car•大约 10 小时前
返回首页
最新
1 分•作者: Anon84•大约 10 小时前
1 分•作者: birdculture•大约 10 小时前
3 分•作者: msalsas•大约 10 小时前
2 分•作者: funktionslust•大约 10 小时前
1 分•作者: impish9208•大约 10 小时前
3 分•作者: nephihaha•大约 10 小时前
1 分•作者: andrewngo•大约 11 小时前
1 分•作者: mssblogs•大约 11 小时前
1 分•作者: exploraz•大约 11 小时前
2 分•作者: scrlk•大约 11 小时前
1 分•作者: ugabuga•大约 11 小时前
2 分•作者: saurabhsinghvi•大约 11 小时前
1 分•作者: jylefv•大约 11 小时前
CoshUI 是一个 UI 引擎,旨在封装不同的游戏框架并轻松集成到现有的游戏循环中。它与后端无关,这意味着相同的 UI 代码可以在不同的框架和图形绑定中运行,只有细微的视觉差异。
目前支持的后端包括 Pygame、Raylib、PyOpenGL 和 ModernGL。切换后端只需更改一个参数(例如,从 `PygameBackend(screen)` 到 `RaylibBackend()`),UI 代码保持不变。
值得注意的是,CoshUI 在技术上表现得像一个即时模式 UI 库,但它借鉴了 React 的思想,在每一帧中进行状态协调,使其能够像一个保留模式系统一样运行。
其功能包括:
- 使用上下文管理器实现“声明式”感觉的 API
- 通过“信号”内置的交互系统
- 通过补间动画实现的动画系统
- 自定义和预制主题
- 按需样式化节点
- 以及更多
CoshUI 是我开发了不到两个月的一个项目。我最初是想为我正在开发的另一个更底层的项目研究 UI 系统,但这个想法最终变得过于宏大,以至于我不得不将其发布出来。
我非常希望得到关于代码和 API 设计的反馈,因为 API 设计是我这次“研究”的主要目标。
请注意,这个项目还非常年轻,我是一名自学成才的独立开发者,在大学一年级入学前利用业余时间完成了所有工作(项目和文档)。我可能遗漏了很多东西,也可能存在更好、更简洁的实现方式,并且还有许多可以提升项目的功能。但它最终是学习的材料,如果您能提供一些想法,我将不胜感激。
代码库:
[https://gitlab.com/jylefv/CoshUI](https://gitlab.com/jylefv/CoshUI) (主库)
[https://github.com/JyleFV/CoshUI](https://github.com/JyleFV/CoshUI) (镜像)
文档:
[https://terrarizer03.github.io/coshui-docs](https://terrarizer03.github.io/coshui-docs) (部分页面尚未完成)
安装:
[pip install coshui]
1 分•作者: tosh•大约 11 小时前
1 分•作者: tosh•大约 11 小时前
2 分•作者: twapi•大约 11 小时前
1 分•作者: TomIRN•大约 12 小时前
1 分•作者: rbanffy•大约 12 小时前
2 分•作者: tracyspacy•大约 12 小时前
为什么?
我只能通过 SSH 访问我的树莓派 Zero。对我来说,根据颜色区分文件类型等内容很困难,我需要更具可读性和清晰度的东西,比如图片/图标或表情符号,因为我最终会遇到各种各样的文件。我决定构建 fli,并且由于 ls 几乎在任何机器上都预装了,fli 作为补充工具的第二个要求是体积小巧。
可读性:得益于使用表情符号(和)而不是文本着色,可读性极佳。
大小:由于 Rust 的标准库对二进制文件的大小贡献很大,因此该项目采用了 no_std + libc。
当前二进制文件大小:M 系列 Mac 51KB,rpi zero 18KB。
显示选项:
`fli`:简短(名称和类型)未排序输出 - 直接流,无堆分配
`fli -s`:简短(名称和类型)按名称排序输出 - 使用堆分配
`fli -l`:长(名称、类型、元数据)未排序输出和固定大小对齐(大小和链接数占 20 个字符)- 直接流,无堆分配
`fli -l -s`:长(名称、类型、元数据)按名称排序输出和动态对齐 - 使用堆分配。
`fli -l -S`:长(名称、类型、元数据)按大小排序输出和动态对齐 - 使用堆分配。
GitHub 仓库:https://github.com/tracyspacy/fli