【发布时间】:2017-05-16 13:11:16
【问题描述】:
我想在屏幕上看到一个符号,例如,可能是(散列)“#”。符号会有一些起始位置,比如 (0, 0)。如果我按右箭头,我希望看到标志向右移动,如果我按左箭头则向左移动,等等。 到目前为止,我的代码看起来像这样,它适用于读取 pos,但我想添加某种“动画”,以便我可以看到屏幕上的符号正在移动:
!更新:只是为了给你一个线索,我创建了“图标”,现在当你按右或左时,图标会向所需的方向移动。
from msvcrt import getch
icon = chr(254)
pos = [0, 0]
t = []
def fright():
global pos
pos[0] += 1
print ' ' * pos[0],
print(icon)
def fleft():
global pos
pos[0] -= 1
print ' ' * pos[0],
print(icon)
def fup():
global pos
pos[1] += 1
def fdown():
global pos
pos[1] -= 1
def appendTab():
global pos, t
t.append(pos)
while True:
print'Distance from zero: ', pos
key = ord(getch())
if key == 27: #ESC
break
elif key == 13: #Enter
print('selected')
appendTab()
elif key == 32: #Space, just a small test - skip this line
print('jump')
print(t)
elif key == 224: #Special keys (arrows, f keys, ins, del, etc.)
key = ord(getch())
if key == 80: #Down arrow
print('down')
fdown()
elif key == 72: #Up arrow
print('up')
fup()
elif key == 75: #Left arrow
print('left')
fleft()
elif key == 77: #Right arrow
print('right')
fright()
【问题讨论】:
-
from msvcrt import getch :在我看来,您正在使用自己的库。请提供。
-
@user7185318 msvcrt 是标准库的一部分。
-
@skrx :谢谢,我使用的是 Linux,所以我没有。