Asciimatics是一个帮助人们在任何平台上创建全屏文本UI(从交互式表单到ASCII动画)的软件包。它是按照Apache Software Foundation License 2.0许可的。
为什么不行?它给那些在80年代编程的人带来了些许快乐……。哦,它还提供了一个单一的跨平台Python类来执行您可以要求的所有低级控制台功能,包括:
目前,这个软件包已经被证明可以在CentOS6&;7、Raspbian(即Debian whezy)、Ubuntu14.04、Windows7、8&;10、OSX10.11和Android Marshmallow(由https://termux.com),提供)上运行,不过它也应该可以在任何其他提供Curses实现的平台上运行。
(请让我知道您是否在其他平台上成功验证了它,以便我可以更新此列表)。
Asciimatics支持Python版本2&;3。有关测试版本的准确列表,请参阅pypi。
这应该会为您安装所有依赖项。如果您不使用pip或pip安装失败,您可以使用Requirements.tx.中列出的软件包直接安装依赖项。此外,Windows用户(不使用pip的用户)将需要安装pypiwin32。
要使用低级API,只需创建一个屏幕并使用它在任何位置打印彩色文本,或获得鼠标/键盘输入。例如,以下是经典的hello world的变体:
从Aciimatics随机导入Randint。Screen导入Screen def demo(Screen):While True:Screen。Print_at(';Hello world!';,randint(0,屏幕。宽度),randint(0,屏幕。高度),颜色=randint(0,屏幕。COLURS-1),BG=RANDINT(0,屏幕。颜色-1))EV=屏幕。Get_key()if ev in(order(';q&39;),order(';q';)):返回屏幕。刷新()屏幕。包装(演示)
同样的代码可以在Windows、OSX和Linux上运行,并为所有更高级别的功能铺平道路。这些功能仍然需要屏幕,但现在您还需要使用一些效果创建一个场景,然后让Screen播放它。例如,此代码:
从腹肌运动学中脱颖而出。影响导入周期,天文之星。渲染器从asciimatics导入FigletText。场景从Aciimatics导入场景。Screen导入Screen def demo(Screen):Effects=[Cycle(Screen,FigletText(";ASCIIMATICS";,font=';BIG&39;),int(Screen.。高度/2-8)),循环(屏幕,图文本(";岩石!";,字体=#39;大';),INT(屏幕。高度/2+3)),星形(屏幕,200)]屏幕。播放([Scene(Effects,500)])屏幕。包装(演示)。
或者,也许你想创建一个TUI?在这种情况下,此简单代码将提供以下内容:
在GitHub上托管的项目Samples目录中提供了有关您可以执行哪些操作的更多示例。请参阅https://github.com/peterbrittain/asciimatics/tree/v1.11/samples.。
要查看它们,只需下载这些文件,然后直接使用python运行它们。或者,您也可以浏览https://github.com/peterbrittain/asciimatics/wiki.库中许多示例的录制。
如果您有问题,请查看http://asciimatics.readthedocs.io/en/latest/troubleshooting.html.上的故障排除指南。如果这不能解决您的问题,您可以在https://github.com/peterbrittain/asciimatics/issues.上报告错误(或提交增强请求。
如果您想参加这个项目(并在演职员表上看到您的名字!),请查看http://asciimatics.readthedocs.org/en/latest/contributing.html上的指南