1 个不稳定版本
0.1.0 | 2023年3月5日 |
---|
#2153 in 游戏开发
61KB
1.5K SLoC
Terminity
项目的入口点和唯一可执行文件。查看项目的 README 或文档以获取更多信息。
lib.rs
:
用于注册多个终端游戏、允许选择游戏并设置运行它们的环境的包。此包处于极早的开发阶段。
要尝试它,请克隆项目并运行 cargo run Chess
或 cargo run SuperTicTacToe
。
此包的目的和目标是
- 使在终端中构建良好的UI更加容易
- 使终端游戏对每个人来说都触手可及。一个 Windows
.exe
应该是预期的,并且我希望制作一个智能手机应用程序。
我还想设置一个 P2P(对等)系统,允许与任何人在线玩游戏,并为程序员提供一个设置在线游戏的 API,而无需强制需要服务器(尽管如果创建了 P2P 系统,预期将创建服务器-客户端游戏)。创建 P2P 系统似乎是可行的,但对于 API 我还不知道。
当然,这个项目不能单独完成。它至少需要一个社区来尝试并提供反馈。如果您想以任何方式支持此项目,从成为 subreddit 的一部分到成为活跃的开发者,请这样做!您不必是开发者或有钱可花,任何帮助都可能比您预期的更有帮助。
目前,为了简化 UI 构建,进行了一些配置,以帮助创建有质量的东西。具体来说
- 启用粘贴、焦点更改和鼠标捕获
- 将终端置于“替代屏幕”
- 启用原始模式
- 保存光标位置并将其移至 0,0
- 当发生任何 unwinding(因此是大多数 panic)时,在显示 unwinding 数据之前恢复终端状态(显示可能得到改进)。如果没有那样做,终端状态将保持配置,并且 sh CLI 变得糟糕。
这些操作的结果可以在棋盘实现中看到,例如,支持用鼠标拖动,并且任何键盘输入都会立即捕获。
依赖项
~6–17MB
~177K SLoC