亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PyGame之怎么打開一個窗口

發布時間:2021-10-25 16:38:38 來源:億速云 閱讀:879 作者:iii 欄目:編程語言

這篇文章主要介紹“PyGame之怎么打開一個窗口”,在日常操作中,相信很多人在PyGame之怎么打開一個窗口問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PyGame之怎么打開一個窗口”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

導入和運行pygame

    你可以創建一個python文件,比如mygame1.py。然后在文件開頭寫入

import pygame

pygame.init()

好的,運行它。沒有變化?那就對了,現在也就是控制臺有幾行輸出。

Screen、Surface和Background

    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添加(blit)到screen

    運行你的程序。什么?只看到一個黑窗口一閃而過?那又對了~

    到目前為止,我們只是在內存中創建了background,還沒有把background添加到screen中,所以我們是看不到白背景的。

screen.blit(background, (0, 0))    # 把background添加到screen中,(0, 0)表示把background的左上角放到screen的左上角

    在很多游戲框架中,當然pygame也是,坐標原點在窗口左上角的頂點處,就是這個樣子

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

    程序結束時,需要退出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之怎么打開一個窗口”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

炉霍县| 拉萨市| 沙田区| 新野县| 湖北省| 雷波县| 遂平县| 衡南县| 丹江口市| 祁门县| 土默特左旗| 贵南县| 九龙坡区| 沽源县| 南雄市| 资讯| 巴东县| 山丹县| 东阿县| 澄迈县| 宜阳县| 九寨沟县| 建平县| 大田县| 永安市| 云梦县| 壤塘县| 琼海市| 黄梅县| 无为县| 石林| 永清县| 清镇市| 海门市| 怀仁县| 潼关县| 文山县| 虹口区| 贵德县| 曲阜市| 武强县|