您好,登錄后才能下訂單哦!
這篇文章主要介紹“PyGame之怎么打開一個窗口”,在日常操作中,相信很多人在PyGame之怎么打開一個窗口問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PyGame之怎么打開一個窗口”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
你可以創建一個python文件,比如mygame1.py。然后在文件開頭寫入
import pygame pygame.init()
好的,運行它。沒有變化?那就對了,現在也就是控制臺有幾行輸出。
pygame運行的時候顯示的最大的那個窗口就是screen,比如你運行LOL,哪個窗口最大應該很好確定。通過pygame,我們可以在screen中創建和控制很多長方形的區域,這些區域叫做surface。我們會用一個surface作為背景,這個surface就是background。接下來我們創建一個background并把它添加到screen中。
screen = pygame.display.set_mode((640,480)) # 設置窗口的大小 background = pygame.Surface(screen.get_size()) # 創建一個surface,名字叫background,大小和screen一樣 background.fill((255,255,255)) # 用白色填充background;255,255,255是RGB的白色 background = background.convert() # 對background進行convert(),可以加快后面添加時速度
運行你的程序。什么?只看到一個黑窗口一閃而過?那又對了~
到目前為止,我們只是在內存中創建了background,還沒有把background添加到screen中,所以我們是看不到白背景的。
screen.blit(background, (0, 0)) # 把background添加到screen中,(0, 0)表示把background的左上角放到screen的左上角
在很多游戲框架中,當然pygame也是,坐標原點在窗口左上角的頂點處,就是這個樣子
主循環就是一個近乎無限的循環,只有你要退出游戲時主循環才停止。
mainloop = True while mainloop: for event in pygame.event.get(): # 這一部分就是事件處理 if event.type == pygame.QUIT: # 如果按下右上角的叉叉 mainloop = False # 退出主循環 elif event.type == pygame.KEYDOWN: # 如果按下了鍵盤 if event.key == pygame.K_ESCAPE: # 而且按下的還是ESC鍵 mainloop = False # 退出主循環 # 在這里做一些游戲相關的運算,這里暫時省略 pygame.display.flip() # 刷新顯示
Ok,再次運行你的游戲~ 這時你將得到一個白色的窗口。下面我們將在窗口里顯示一些東西。
幀率就是游戲每秒運行的幀數,簡稱FPS,玩過游戲你一定知道FPS。幀率越高,游戲就越流暢。我們可以這樣獲得幀率
clock = pygame.time.Clock() # 創建clock對象 clock.get_fps() # 獲得幀率
現在我們把顯示幀率的邏輯加入到主循環中
clock = pygame.time.Clock() # 創建clock對象 FPS = 30 # 定義幀率的上限,就是幀率的最大值 mainloop = True while mainloop: clock.tick(FPS) # 設置最大幀率 for event in pygame.event.get(): # 這一部分就是事件處理 if event.type == pygame.QUIT: # 如果按下右上角的叉叉 mainloop = False # 退出主循環 elif event.type == pygame.KEYDOWN: # 如果按下了鍵盤 if event.key == pygame.K_ESCAPE: # 而且按下的還是ESC鍵 mainloop = False # 退出主循環 # 在這里做一些游戲相關的運算,這里暫時省略 text = "FPS: {0:.2f}".format(clock.get_fps()) pygame.display.set_caption(text) pygame.display.flip() # 刷新顯示
運行你的代碼~ 幀率可以顯示了
程序結束時,需要退出pygame以釋放申請的計算資源。
pygame.quit()
import pygame pygame.init() screen = pygame.display.set_mode((640,480)) # 設置窗口的大小 background = pygame.Surface(screen.get_size()) # 創建一個surface,名字叫background,大小和screen一樣 background.fill((255,255,255)) # 用白色填充background;255,255,255是RGB的白色 background = background.convert() # 對background進行convert(),可以加快后面添加時速度 screen.blit(background, (0, 0)) clock = pygame.time.Clock() # 創建clock對象 FPS = 30 # 定義幀率的上限,就是幀率的最大值 mainloop = True while mainloop: clock.tick(FPS) # 設置最大幀率 for event in pygame.event.get(): # 這一部分就是事件處理 if event.type == pygame.QUIT: # 如果按下右上角的叉叉 mainloop = False # 退出主循環 elif event.type == pygame.KEYDOWN: # 如果按下了鍵盤 if event.key == pygame.K_ESCAPE: # 而且按下的還是ESC鍵 mainloop = False # 退出主循環 # 在這里做一些游戲相關的運算,這里暫時省略 text = "FPS: {0:.2f}".format(clock.get_fps()) pygame.display.set_caption(text) pygame.display.flip() # 刷新顯示 pygame.quit()
到此,關于“PyGame之怎么打開一個窗口”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。