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