• <ins id="rwosr"><acronym id="rwosr"></acronym></ins>
      <kbd id="rwosr"></kbd>

      1. <tr id="rwosr"></tr>
        <code id="rwosr"></code> <output id="rwosr"><track id="rwosr"></track></output>

        <output id="rwosr"><track id="rwosr"></track></output>
        <sup id="rwosr"><track id="rwosr"></track></sup>
        <tr id="rwosr"><nobr id="rwosr"><delect id="rwosr"></delect></nobr></tr>

        <output id="rwosr"><track id="rwosr"></track></output>
        400-650-7353
        您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Pygame的基本使用——游戲循環和模板

        【Python基礎知識】Pygame的基本使用——游戲循環和模板

        • 來源:優就業
        • 2021-09-28 09:44:34
        • 閱讀()
        • 分享
        • 手機端入口

        每個游戲的核心控制流程都是循環,稱為游戲循環。游戲循環不斷地反復運行,完成使游戲正常運行所需的工作。每迭代一次游戲循環稱為一幀。

        Pygame框架游戲循環中發生的事情可以分為三種不同的類別。

        ①事件:需要游戲做出響應的所有內容。例如,在鍵盤上按下的鍵,在鼠標上點擊的鍵等。

        ②更新游戲:此框架上需要更改的所有內容。例如,如果角色懸空,那么需要使用重力將其拉下來;如果兩個對象相遇,那么需要發生爆炸。

        ③渲染:將所有內容繪制在屏幕上。例如,播放器需要查看的背景、角色、菜單或其他任何內容,都必須在屏幕上正確的位置繪制。

        游戲循環的關鍵是控制整個游戲循環的運行速度,即FPS,它表示每秒的幀數,這意味著游戲循環每秒應該發生多少次。如果控制不好FPS,游戲就會運行得過快或過慢。

        (1)創建Pygame模版

        編寫一個簡單的Pygame程序,該程序除了打開游戲窗口并運行游戲循環外什么也不做。

        首先導入所需的Pygame庫,并設置游戲的全局選項變量:

        1. import pygame 
        2.  
        3. WIDTH = 300   # 游戲窗口的寬度 
        4. HEIGHT = 420   # 游戲窗口的高度 
        5. FPS = 30   # 每秒的幀數 

        接下來創建游戲窗口:

        1. # 初始化Pygame并創建游戲窗口 
        2. pygame.init() 
        3. screen = pygame.display.set_mode((WIDTH, HEIGHT)) 
        4. pygame.display.set_caption('Demo Game')   # 設置游戲標題 
        5. clock = pygame.time.Clock() 

        先調用pygame.init()啟動Pygame并將其初始化;再調用pygame.display.set_mode()創建游戲窗口screen,其參數是一個元組,表示該游戲窗口的寬度和高度;最后調用pygame.time.Clock()創建時鐘對象clock,以便能夠確保游戲按照設定好的FPS運行。

        然后開始編寫游戲循環:

        1. # 游戲循環 
        2. running = True 
        3. while running: 
        4.     pass 

        這是游戲循環的框架代碼,它是由變量running控制是否執行的while循環,如果希望游戲循環結束,那么只需將running設置為False即可。

        (2)渲染部分

        目前示例代碼中僅僅演示的是用純色填充屏幕。下面先介紹一下計算機對顏色的處理。

        計算機屏幕由像素組成,這些像素的顏色由三個顏色混合生成,這三個顏色就是三基色:紅色(R),綠色(G)和藍色(B)。每個顏色的發光強度決定了該像素的顏色,用0到255之間的一個整數來表示發光強度的大小,因此,RGB三個顏色中的每個都有256種亮度等級?梢酝ㄟ^三者的乘積,獲得計算機中可以顯示的顏色總數:256*256*256=16777216。

        在項目中定義一些顏色:

        1. BLACK = (000)   # 黑色 
        2. WHITE = (255255255)   # 白色 
        3. RED = (25500)   # 紅色 
        4. GREEN = (02550)   # 綠色 
        5. BLUE = (00255)   # 藍色 

        以上顏色由一個元組定義,元組中的項按照RGB排序,數值為顏色的亮度等級。

        給屏幕填充顏色,并使最近繪制的屏幕可見:

        1. screen.fill(WHITE) 
        2. pygame.display.flip() 

        (3)事件部分

        此時嘗試運行程序,則會發現程序存在問題——無法關閉窗口,單擊窗口右上角的“關閉”按鈕無效。這是因為“單擊窗口右上角的‘關閉’按鈕”其實是一個事件,需要監聽該事件并做出相應處理——退出游戲。

        事件可以隨時發生。如果游戲在循環的更新或渲染過程中單擊其他按鈕怎么辦?Pygame要做的是保存自上一幀以來發生的所有事件。這樣,如果游戲快速將許多按鈕混在一起,那么可以使所有按鈕都有效。監聽的事件是一個列表,可以使用一個for循環來查看它們:

        1. for event in pygame.event.get(): 
        2.     # 檢查窗口是否關閉 
        3.     if event.type == pygame.QUIT: 
        4.         running = False 

        Pygame中有很多可以監聽的事件,pygame.QUIT是單擊窗口右上角的“關閉”時觸發的事件,此時將running設置為False,游戲循環將終止。

        (4)控制FPS

        使用FPS來控制游戲的運行速度:

        1. while running: 
        2.     clock.tick(FPS) 

        tick()方法用于告訴Pygame循環所花的時間。變量FPS已經賦值為30,這意味著游戲循環每秒應該發生30次,即每幀持續1⁄30秒。

        (5)組裝代碼

        將上述代碼組裝起來,并在末尾添加pygame.quit()用于終止游戲:

        1. import pygame 
        2.  
        3. WIDTH = 300 
        4. HEIGHT = 420 
        5. FPS = 30 
        6.  
        7. # 定義顏色 
        8. WHITE = (255255255
        9. BLACK = (000
        10. RED = (25500
        11. GREEN = (02550
        12. BLUE = (00255
        13.  
        14. # 初始化pygame并創建游戲窗口 
        15. pygame.init() 
        16. pygame.mixer.init() 
        17. screen = pygame.display.set_mode((WIDTH, HEIGHT)) 
        18. pygame.display.set_caption('Demo Game'
        19. clock = pygame.time.Clock() 
        20.  
        21. # 游戲循環 
        22. running = True 
        23. while running: 
        24.     clock.tick(FPS) 
        25.     for event in pygame.event.get(): 
        26.         if event.type == pygame.QUIT: 
        27.             running = False 
        28.  
        29.     screen.fill(WHITE) 
        30.     pygame.display.flip() 
        31.  
        32. pygame.quit() 

        將上述代碼進行保存,文件名為template.py,本書后文將使用該Pygame模板作為項目的起點。

        運行template.py,運行結果如圖1所示。

        圖1 Pygame模板運行結果

        文章“【Python基礎知識】Pygame的基本使用——游戲循環和模板”已幫助

        更多內容

        >>本文地址:http://www.littlerockbway.com/zhuanye/2021/70178.html

        THE END  

        聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

        1 您的年齡

        2 您的學歷

        3 您更想做哪個方向的工作?

        獲取測試結果
        • 大前端大前端
        • 大數據大數據
        • 互聯網營銷互聯網營銷
        • JavaJava
        • Linux云計算Linux
        • Python+人工智能Python
        • 嵌入式物聯網嵌入式
        • 全域電商運營全域電商運營
        • 軟件測試軟件測試
        • 室內設計室內設計
        • 平面設計平面設計
        • 電商設計電商設計
        • 網頁設計網頁設計
        • 全鏈路UI/UE設計UI設計
        • VR/AR游戲開發VR/AR
        • 網絡安全網絡安全
        • 新媒體與短視頻運營新媒體
        • 直播帶貨直播帶貨
        • 智能機器人軟件開發智能機器人
         

        快速通道fast track

        近期開班時間TIME

        两个人在线观看免费播放_国产精品天干天干_亚洲婷婷月色婷婷五月小蛇_男人的好小说全文免费阅读
      2. <ins id="rwosr"><acronym id="rwosr"></acronym></ins>
          <kbd id="rwosr"></kbd>

          1. <tr id="rwosr"></tr>
            <code id="rwosr"></code> <output id="rwosr"><track id="rwosr"></track></output>

            <output id="rwosr"><track id="rwosr"></track></output>
            <sup id="rwosr"><track id="rwosr"></track></sup>
            <tr id="rwosr"><nobr id="rwosr"><delect id="rwosr"></delect></nobr></tr>

            <output id="rwosr"><track id="rwosr"></track></output>
            <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>