2018年3月5日 星期一

Pygame超新手常中的陷阱

不曉得是Pygame本身的缺陷或bug,Pygame程式執行一段時間,必需要呼叫event一下,否則程式會變成沒有回應的情況,而程式畫面也會暫時停止更新。解決方法,就是確定程式沒互動時,get一下event,但也不是隨時都可以get event,因為當有event要處理時,例如按下滑鼠鍵,不適當處理event的話,可能造成沒處理event,例如可能造成吃鍵現像。一般,如果沒有multi-thread的話,可以在程式sleep前,get event以防止程式沒有回應。
例如,可以用以下delay(second),取代原本的time.sleep(second):

def delay(second):
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()           
    time.sleep(second)

沒有留言:

張貼留言

Codewars: The Baum-Sweet sequence

這題列在7 kyu,我覺得有點難度,應該有6 kyu的程度了。 這題有數學題的感覺,我因為害怕TLE,加上我有感冒, 因此是直接問ChatGPT 4o怎麼解決, 沒想到一開始,ChatGPT是提供TLE的方法, 我再問ChatGPT要如何加快, 才給我夠快的方法, 看了ChatG...