كيف يمكنك الضغط على مفتاح السهم الأخير باستخدام اللعنات؟
سؤال
أنا أكتب لعبة ثعبان بيثون باستخدام اللعنات, ، لكن أواجه بعض المتاعب في التحكم في الثعبان ، يتم وضع الكود الحالي للتحكم في الثعبان داخل الحلقة الرئيسية ويبدو مثل هذا:
while True:
char = screen.getch()
if char == 113: exit() # q
elif char == curses.KEY_RIGHT: snake.update(RIGHT)
elif char == curses.KEY_LEFT: snake.update(LEFT)
elif char == curses.KEY_UP: snake.update(UP)
elif char == curses.KEY_DOWN: snake.update(DOWN)
else snake.update()
time.sleep(0.1)
ومع ذلك ، يبدو أن الكود يعامل المفاتيح التي تم الضغط عليها على أنها Que (لذلك ستتوقف الثعبان عندما ينفد من ضغط السهم) ، في حين أريد فعليًا استرداد مفتاح السهم الأخير الذي تم الضغط عليه.
كيف يمكنني استرداد مفتاح السهم الأخير الذي تم الضغط عليه؟
المحلول
تعيين screen.nodelay(1)
:
screen.nodelay(1)
while True:
char = screen.getch()
if char == 113: break # q
elif char == curses.KEY_RIGHT: snake.update(RIGHT)
elif char == curses.KEY_LEFT: snake.update(LEFT)
elif char == curses.KEY_UP: snake.update(UP)
elif char == curses.KEY_DOWN: snake.update(DOWN)
else: snake.update()
time.sleep(0.1)
لا تنتمي إلى StackOverflow