<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          01-初識(shí) pygame 游戲開發(fā)

          共 3451字,需瀏覽 7分鐘

           ·

          2021-08-02 01:31

          閱讀本文大概需要6分鐘

          你好,我是悅創(chuàng)。接下來三十天,我將持續(xù)更新 Python pygame 的基礎(chǔ)游戲開發(fā)教程。文章都會(huì)對(duì)應(yīng)視頻教程,視頻教程將在公眾號(hào):AI悅創(chuàng),發(fā)布。

          目錄

          本次,文章目標(biāo):

          1. Python 的第三方庫(kù)

          2. pygame 的簡(jiǎn)單介紹

          3. 創(chuàng)建窗體、背景

          1. Python 的第三方庫(kù)

          Python 本身具有一些基本功能和函數(shù),但是明顯并不能覆蓋所有我們需要的功能,比如圖像的處理、大量數(shù)據(jù)計(jì)算分析等,這時(shí)就是要第三方庫(kù)。

          這種第三方庫(kù)在 Python 中使用 pip 來安裝、升級(jí)、卸載等管理;Python 官方庫(kù)網(wǎng)址:https://pypi.org/

          接下來的文章都會(huì)使用 pygame 庫(kù)來開發(fā) Python 游戲,我們就需要安裝 pygame,在終端輸入以下命令來安裝 pygame:

          pip install pygame

          安裝時(shí)需要連接網(wǎng)絡(luò),見到 ”done“ ”success“ 即表示安裝成功,如果在后續(xù)編碼時(shí)無法找到 pygame 庫(kù),重裝即可。

          2. pygame 簡(jiǎn)單介紹

          pygame 是 Python 中比較流行的游戲庫(kù),它提供的函數(shù)能夠處理圖像、文字、聲音等,也有一些商業(yè)游戲項(xiàng)目采用 pygame 開發(fā),但一般來說不適合開發(fā)大型游戲,我們學(xué)習(xí) Python  編程用它比較合適(另外從此處開始,就要大量使用函數(shù)等內(nèi)容了,難度會(huì)有所上升)。

          案例 1:新建文件來測(cè)試一下 pygame 安裝效果,同時(shí)學(xué)習(xí)庫(kù)的導(dǎo)入方法。

          # file:Lesson_01.py
          import pygame # 導(dǎo)入 pygame 庫(kù)
          # 然后導(dǎo)入 pygame 庫(kù)中的 aliens 例子
          import pygame.examples.aliens
          # 運(yùn)行這個(gè) aliens 的主函數(shù)入口
          pygame.examples.aliens.main()

          代碼解析:

          • import pygame :要使用額外的庫(kù),都需要通過 import 來導(dǎo)入對(duì)應(yīng)的庫(kù);
          • 如果只想導(dǎo)入庫(kù)的某一部分功能,也可以使用 “from 庫(kù)名稱 import 具體功能” 的方法。
          • 本例子是自帶的參考例子,一個(gè)外星人入侵小游戲,運(yùn)行沒問題表示安裝 pygame 成功,examples 下層還有很多其他的樣例游戲,可自行查看。

          運(yùn)行結(jié)果:

          Pygame Aliens

          3. 創(chuàng)建窗體、背景

          案例 1:通過編寫一個(gè)窗體界面,來體驗(yàn) pygame 的初始化、顏色處理、事件獲取等功能。

          說明:

          開始游戲編寫之后代碼較長(zhǎng),后文會(huì)都會(huì)按步驟給出,并進(jìn)行說明,有的還會(huì)有簡(jiǎn)易流程圖,另外代碼注釋中也會(huì)寫明關(guān)鍵提示。

          # file:Lesson_02.py
          import pygame # 導(dǎo)入 pygame 庫(kù)
          pygame.init() # 調(diào)用初始化函數(shù)
          # 設(shè)定窗口的寬和高
          size = width, height = 600, 400
          # ↑ 上述多元賦值后又賦值給 size,成為元組
          # 接下來創(chuàng)建屏幕,也是變量存儲(chǔ)就可以
          screen = pygame.display.set_mode(size)
          # ---第一步完畢,程序運(yùn)行會(huì)有窗口閃過---

          代碼解析:

          • size 處,先進(jìn)行了多元賦值,將兩個(gè)數(shù)值賦值給 width 和 height ,然后又賦值給了 size,變成元組(類似列表,但不可改變),這時(shí)整體形成多賦值,如果打印 size 結(jié)果會(huì)是 (600, 400) 。
          • screen 接收了 pygame 建立的對(duì)象,對(duì)象這個(gè)概念后面會(huì)再學(xué)。

          運(yùn)行后會(huì)有如下圖一閃而過的黑色窗體。

          在這里插入圖片描述

          說明:

          • 接下來跟著第一步后面編寫,主要完成 持續(xù)運(yùn)行 、畫面更新單擊右上角 x 退出程序 ,3 個(gè)功能。

          • 退出功能需要使用 sys 庫(kù),這是一個(gè)內(nèi)置庫(kù),不用額外下載安裝,直接在文件頭部 import sys 即可。

          想要程序持續(xù)運(yùn)行,需要使用循環(huán)

          import sys
          # 想要程序持續(xù)運(yùn)行,需要使用循環(huán)
          while True:
          # 在循環(huán)中,每循環(huán)一次就判斷要不要退出
          for event in pygame.event.get():
          # 使用 for 循環(huán)獲取當(dāng)前 pygame 窗體事件
          if event.type == pygame.QUIT:
          # 如果獲取到的事件類型是 QUIT(退出)
          sys.exit() # 那么調(diào)用系統(tǒng)退出
          # 每次判斷完畢后,就要更新窗口畫面
          pygame.display.update() # update 意為更新
          # ---第二步完畢,現(xiàn)在窗口不會(huì)閃退,可用鼠標(biāo)關(guān)閉

          代碼解析:

          • 每行代碼我都有解析,希望好好看看注釋;
          • 注意縮進(jìn),每次遇到循環(huán)、判斷、函數(shù)等,都要注意 4 個(gè)空格縮進(jìn),這樣才能體現(xiàn)層級(jí)關(guān)系,才能讓程序按預(yù)想正常運(yùn)行(Python 嚴(yán)格依靠縮進(jìn)來區(qū)別不同的代碼塊)
          1. 接下來,添加窗口名稱和背景顏色,這兩句代碼都寫在循環(huán)前面。
          # ↓ 可以設(shè)定窗口的名稱
          pygame.display.set_caption("我的游戲")
          # 定義一個(gè)列表存儲(chǔ)背景色,采用 RGB 顏色表示
          # 可搜索 RGB 顏色對(duì)照表選擇自己喜歡的顏色數(shù)值
          bgcolor = [0, 255, 255]
          # 背景色需要使用 fill() 填充,我們放在循環(huán)里
          1. 實(shí)際的填充顏色的代碼寫在循環(huán)里面。
          screen.fill(bgcolor) # 填充背景顏色

          代碼解析:

          • bgcolor:是一個(gè)列表,它保存了背景顏色的 RGB 信息,但是要注意,變量在實(shí)際使用前,都只是數(shù)字容器而已,并不能設(shè)定完變量就看到背景效果。

          • 背景色設(shè)定放在循環(huán)中,這樣就可以每次刷新背景了,這時(shí)才真的使用了 bgcolor 中存儲(chǔ)的數(shù)值。

          為了,讓小白也能看懂,我把本階段的完整代碼放出來。

          import pygame # 導(dǎo)入 pygame 庫(kù)
          import sys
          pygame.init() # 調(diào)用初始化函數(shù)
          # 設(shè)定窗口的寬和高
          size = width, height = 600, 400
          # ↑ 上述多元賦值后又賦值給 size,成為元組
          # 接下來創(chuàng)建屏幕,也是變量存儲(chǔ)就可以
          screen = pygame.display.set_mode(size)
          # ---第一步完畢,程序運(yùn)行會(huì)有窗口閃過---

          # ↓ 可以設(shè)定窗口的名稱
          pygame.display.set_caption("我的游戲")
          # 定義一個(gè)列表存儲(chǔ)背景色,采用 RGB 顏色表示
          # 可搜索 RGB 顏色對(duì)照表選擇自己喜歡的顏色數(shù)值
          bgcolor = [0, 255, 255]
          # 背景色需要使用 fill() 填充,我們放在循環(huán)里

          # 想要程序持續(xù)運(yùn)行,需要使用循環(huán)
          while True:
          # 在循環(huán)中,每循環(huán)一次就判斷要不要退出
          for event in pygame.event.get():
          # 使用 for 循環(huán)獲取當(dāng)前 pygame 窗體事件
          if event.type == pygame.QUIT:
          # 如果獲取到的事件類型是 QUIT(退出)
          sys.exit() # 那么調(diào)用系統(tǒng)退出
          screen.fill(bgcolor) # 填充背景顏色
          # 每次判斷完畢后,就要更新窗口畫面
          pygame.display.update() # update 意為更新
          # ---第二步完畢,現(xiàn)在窗口不會(huì)閃退,可用鼠標(biāo)關(guān)閉

          再次運(yùn)行程序,這時(shí)窗體名稱和背景就變了。

          在這里插入圖片描述

          AI悅創(chuàng)·推出輔導(dǎo)班啦,包括「Python 語言輔導(dǎo)班、C++輔導(dǎo)班、算法/數(shù)據(jù)結(jié)構(gòu)輔導(dǎo)班、少兒編程、pygame 游戲開發(fā)」,全部都是一對(duì)一教學(xué):一對(duì)一輔導(dǎo) + 一對(duì)一答疑 + 布置作業(yè) + 項(xiàng)目實(shí)踐等。QQ、微信在線,隨時(shí)響應(yīng)!V:Jiabcdefh

          作者:AI悅創(chuàng)
          排版:AI悅創(chuàng)





          黃家寶丨AI悅創(chuàng)

          隱形字

          攝影公眾號(hào)「悅創(chuàng)攝影研習(xí)社」


          在這里分享自己的一些經(jīng)驗(yàn)、想法和見解。



          長(zhǎng)按識(shí)別二維碼關(guān)注




          好文和朋友一起看~
          瀏覽 64
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  aaa一级电影网站 | 日韩色情视频 | 激情综合色综合啪 | 国产va | 婷婷六月天在线 |