如果按下ESC,如何使此代码也返回true?
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
答案 0 :(得分:0)
在背景上有点短暂。此处使用select
来报告是否有可供阅读的内容。要找出什么,你需要阅读它。但这与被压迫的东西不一样,意思仍然存在。对于那种类型的东西,你需要一个像pygame.key.get_pressed()
这样的界面。在类Unix系统中的默认行为是终端层处理整行 - 包括用退格删除字符之类的东西 - 然后将其交给你的程序。任何比这更精细的细节都需要使用未烹饪的模式,例如使用curses.cbreak()
或curses.raw()
。这恢复了按键的概念,但仍然不会报告按键是否被保留。然而,密钥本身是编码的(许多使用终端转义序列,使得转义本身是最难解码的),因此您需要使用getch或getkey来识别它们。