0
我在位置(0,0)有一個塊。定期(比如每1秒)塊的y座標將隨機更新+/- 1。如何管理定期更新的實時輸入
而且每次用戶輸入一個字符(+/-)時,用戶輸入的x座標將會更新+/- 1。
如果它只是x座標,我可以創建一個while循環,當input()獲取一個值時,它將運行到下一個迭代中。 (?可隨時上門)
但我怎麼能處理這兩種定期更新以及實時輸入
我在位置(0,0)有一個塊。定期(比如每1秒)塊的y座標將隨機更新+/- 1。如何管理定期更新的實時輸入
而且每次用戶輸入一個字符(+/-)時,用戶輸入的x座標將會更新+/- 1。
如果它只是x座標,我可以創建一個while循環,當input()獲取一個值時,它將運行到下一個迭代中。 (?可隨時上門)
但我怎麼能處理這兩種定期更新以及實時輸入
Threading是你的朋友:
import time
from threading import Thread
# This defines the thread that handles console input
class UserInputThread(Thread):
def __init__ (self):
Thread.__init__(self)
# Process user input here:
def run(self):
while True:
text = input("input: ")
print("You said", text)
# Exit the thread
if text == "exit":
return
console_thread = UserInputThread()
console_thread.start()
while True:
time.sleep(5)
print("function")
# If the thread is dead, the programme will exit when the current iteration of the while loop ends.
if not console_thread.is_alive():
break
UserInputThread
在運行背景並處理用戶輸入。 print("function")
可以是您在主線程中需要執行的任何邏輯。
哦,謝謝這有助於很多! –
如果你問:「如何在沒有無限制地阻止鍵盤輸入的情況下輪詢鍵盤輸入,直到用戶點擊Enter?」,[getch](https://docs.python.org/3/library/msvcrt.html#msvcrt .getch)可能是一個選項。 – Kevin
[可能來自終端的python中檢測鍵盤輸入的最簡單方法是什麼?](https://stackoverflow.com/questions/13207678/whats-the-simplest-way-of-detecting-keyboard-input-in -python-from-the-terminal) – EsotericVoid
@Kevin Ive玩過簡單的終端遊戲(如俄羅斯方塊),用Python編寫,其中更新(以俄羅斯方塊爲例,主要形狀下降一個單位)每隔'x'秒發生一次所以,但是隻要用戶輸入一個字符(我猜測使用getch),形狀就可以向側面移動。更新可以使用一些與時間相關的模塊定期完成。但是如何將其與用戶的輸入整合? –