日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
用Python和Pygame模塊構(gòu)建一個(gè)游戲框架

這系列的***篇通過創(chuàng)建一個(gè)簡單的骰子游戲來探究 Python?,F(xiàn)在是來從零制作你自己的游戲的時(shí)間。

創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元寧江做網(wǎng)站,已為上家服務(wù),為寧江各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

在我的這系列的***篇文章 中, 我已經(jīng)講解如何使用 Python 創(chuàng)建一個(gè)簡單的、基于文本的骰子游戲。這次,我將展示如何使用 Python 模塊 Pygame 來創(chuàng)建一個(gè)圖形化游戲。它將需要幾篇文章才能來得到一個(gè)確實(shí)做成一些東西的游戲,但是到這系列的結(jié)尾,你將更好地理解如何查找和學(xué)習(xí)新的 Python 模塊和如何從其基礎(chǔ)上構(gòu)建一個(gè)應(yīng)用程序。

在開始前,你必須安裝 Pygame。

安裝新的 Python 模塊

有幾種方法來安裝 Python 模塊,但是最通用的兩個(gè)是:

  • 從你的發(fā)行版的軟件存儲庫
  • 使用 Python 的軟件包管理器 pip

兩個(gè)方法都工作的很好,并且每一個(gè)都有它自己的一套優(yōu)勢。如果你是在 Linux 或 BSD 上開發(fā),可以利用你的發(fā)行版的軟件存儲庫來自動和及時(shí)地更新。

然而,使用 Python 的內(nèi)置軟件包管理器可以給予你控制更新模塊時(shí)間的能力。而且,它不是特定于操作系統(tǒng)的,這意味著,即使當(dāng)你不是在你常用的開發(fā)機(jī)器上時(shí),你也可以使用它。pip 的其它的優(yōu)勢是允許本地安裝模塊,如果你沒有正在使用的計(jì)算機(jī)的管理權(quán)限,這是有用的。

使用 pip

如果 Python 和 Python3 都安裝在你的系統(tǒng)上,你想使用的命令很可能是 pip3,它用來區(qū)分 Python 2.x 的 pip 的命令。如果你不確定,先嘗試 pip3。

pip 命令有些像大多數(shù) Linux 軟件包管理器一樣工作。你可以使用 search 搜索 Python 模塊,然后使用 install 安裝它們。如果你沒有你正在使用的計(jì)算機(jī)的管理權(quán)限來安裝軟件,你可以使用 --user 選項(xiàng)來僅僅安裝模塊到你的家目錄。

 
 
 
 
  1. $ pip3 search pygame
  2. [...]
  3. Pygame (1.9.3)                 - Python Game Development
  4. sge-pygame (1.5)               - A 2-D game engine for Python
  5. pygame_camera (0.1.1)          - A Camera lib for PyGame
  6. pygame_cffi (0.2.1)            - A cffi-based SDL wrapper that copies the pygame API.
  7. [...]
  8. $ pip3 install Pygame --user

Pygame 是一個(gè) Python 模塊,這意味著它僅僅是一套可以使用在你的 Python 程序中的庫。換句話說,它不是一個(gè)像 IDLE 或 Ninja-IDE 一樣可以讓你啟動的程序。

Pygame 新手入門

一個(gè)電子游戲需要一個(gè)背景設(shè)定:故事發(fā)生的地點(diǎn)。在 Python 中,有兩種不同的方法來創(chuàng)建你的故事背景:

  • 設(shè)置一種背景顏色
  • 設(shè)置一張背景圖片

你的背景僅是一張圖片或一種顏色。你的電子游戲人物不能與在背景中的東西相互作用,因此,不要在后面放置一些太重要的東西。它僅僅是設(shè)置裝飾。

設(shè)置你的 Pygame 腳本

要開始一個(gè)新的 Pygame 工程,先在計(jì)算機(jī)上創(chuàng)建一個(gè)文件夾。游戲的全部文件被放在這個(gè)目錄中。在你的工程文件夾內(nèi)部保持所需要的所有的文件來運(yùn)行游戲是極其重要的。

一個(gè) Python 腳本以文件類型、你的姓名,和你想使用的許可證開始。使用一個(gè)開放源碼許可證,以便你的朋友可以改善你的游戲并與你一起分享他們的更改:

 
 
 
 
  1. #!/usr/bin/env python3
  2. # by Seth Kenlon
  3.  
  4. ## GPLv3
  5. # This program is free software: you can redistribute it and/or
  6. # modify it under the terms of the GNU General Public License as
  7. # published by the Free Software Foundation, either version 3 of the
  8. # License, or (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful, but
  11. # WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program. If not, see .

然后,你告訴 Python 你想使用的模塊。一些模塊是常見的 Python 庫,當(dāng)然,你想包括一個(gè)你剛剛安裝的 Pygame 模塊。

 
 
 
 
  1. import pygame  # 加載 pygame 關(guān)鍵字
  2. import sys     # 讓 python 使用你的文件系統(tǒng)
  3. import os      # 幫助 python 識別你的操作系統(tǒng)

由于你將用這個(gè)腳本文件做很多工作,在文件中分成段落是有幫助的,以便你知道在哪里放代碼。你可以使用塊注釋來做這些,這些注釋僅在看你的源文件代碼時(shí)是可見的。在你的代碼中創(chuàng)建三個(gè)塊。

 
 
 
 
  1. '''
  2. Objects
  3. '''
  4.  
  5. # 在這里放置 Python 類和函數(shù)
  6.  
  7. '''
  8. Setup
  9. '''
  10.  
  11. # 在這里放置一次性的運(yùn)行代碼
  12.  
  13. '''
  14. Main Loop
  15. '''
  16.  
  17. # 在這里放置游戲的循環(huán)代碼指令

接下來,為你的游戲設(shè)置窗口大小。注意,不是每一個(gè)人都有大計(jì)算機(jī)屏幕,所以,***使用一個(gè)適合大多數(shù)人的計(jì)算機(jī)的屏幕大小。

這里有一個(gè)方法來切換全屏模式,很多現(xiàn)代電子游戲都會這樣做,但是,由于你剛剛開始,簡單起見僅設(shè)置一個(gè)大小即可。

 
 
 
 
  1. '''
  2. Setup
  3. '''
  4. worldx = 960
  5. worldy = 720

在腳本中使用 Pygame 引擎前,你需要一些基本的設(shè)置。你必須設(shè)置幀頻,啟動它的內(nèi)部時(shí)鐘,然后開始 (init)Pygame 。

 
 
 
 
  1. fps   = 40  # 幀頻
  2. ani   = 4   # 動畫循環(huán)
  3. clock = pygame.time.Clock()
  4. pygame.init()

現(xiàn)在你可以設(shè)置你的背景。

設(shè)置背景

在你繼續(xù)前,打開一個(gè)圖形應(yīng)用程序,為你的游戲世界創(chuàng)建一個(gè)背景。在你的工程目錄中的 images 文件夾內(nèi)部保存它為 stage.png 。

這里有一些你可以使用的自由圖形應(yīng)用程序。

  • Krita 是一個(gè)專業(yè)級繪圖素材模擬器,它可以被用于創(chuàng)建漂亮的圖片。如果你對創(chuàng)建電子游戲藝術(shù)作品非常感興趣,你甚至可以購買一系列的游戲藝術(shù)作品教程。
  • Pinta 是一個(gè)基本的,易于學(xué)習(xí)的繪圖應(yīng)用程序。
  • Inkscape 是一個(gè)矢量圖形應(yīng)用程序。使用它來繪制形狀、線、樣條曲線和貝塞爾曲線。

你的圖像不必很復(fù)雜,你可以以后回去更改它。一旦有了它,在你文件的 Setup 部分添加這些代碼:

 
 
 
 
  1. world    = pygame.display.set_mode([worldx,worldy])
  2. backdrop = pygame.image.load(os.path.join('images','stage.png').convert())
  3. backdropbox = world.get_rect()

如果你僅僅用一種顏色來填充你的游戲的背景,你需要做的就是:

 
 
 
 
  1. world = pygame.display.set_mode([worldx,worldy])

你也必須定義顏色以使用。在你的 Setup 部分,使用紅、綠、藍(lán) (RGB) 的值來創(chuàng)建一些顏色的定義。

 
 
 
 
  1. '''
  2. Setup
  3. '''
  4.  
  5. BLUE  = (25,25,200)
  6. BLACK = (23,23,23 )
  7. WHITE = (254,254,254)

至此,你理論上可以啟動你的游戲了。問題是,它可能僅持續(xù)了一毫秒。

為證明這一點(diǎn),保存你的文件為 your-name_game.py(用你真實(shí)的名稱替換 your-name)。然后啟動你的游戲。

如果你正在使用 IDLE,通過選擇來自 “Run” 菜單的 “Run Module” 來運(yùn)行你的游戲。

如果你正在使用 Ninja,在左側(cè)按鈕條中單擊 “Run file” 按鈕。

你也可以直接從一個(gè) Unix 終端或一個(gè) Windows 命令提示符中運(yùn)行一個(gè) Python 腳本。

 
 
 
 
  1. $ python3 ./your-name_game.py

如果你正在使用 Windows,使用這命令:

 
 
 
 
  1. py.exe your-name_game.py

啟動它,不過不要期望很多,因?yàn)槟愕挠螒颥F(xiàn)在僅僅持續(xù)幾毫秒。你可以在下一部分中修復(fù)它。

循環(huán)

除非另有說明,一個(gè) Python 腳本運(yùn)行一次并僅一次。近來計(jì)算機(jī)的運(yùn)行速度是非??斓?,所以你的 Python 腳本運(yùn)行時(shí)間會少于 1 秒鐘。

為強(qiáng)制你的游戲來處于足夠長的打開和活躍狀態(tài)來讓人看到它(更不要說玩它),使用一個(gè) while 循環(huán)。為使你的游戲保存打開,你可以設(shè)置一個(gè)變量為一些值,然后告訴一個(gè) while 循環(huán)只要變量保持未更改則一直保存循環(huán)。

這經(jīng)常被稱為一個(gè)“主循環(huán)”,你可以使用術(shù)語 main 作為你的變量。在你的 Setup 部分的任意位置添加代碼:

 
 
 
 
  1. main = True

在主循環(huán)期間,使用 Pygame 關(guān)鍵字來檢查鍵盤上的按鍵是否已經(jīng)被按下或釋放。添加這些代碼到你的主循環(huán)部分:

 
 
 
 
  1. '''
  2. Main loop
  3. '''
  4. while main == True:
  5.     for event in pygame.event.get():
  6.         if event.type == pygame.QUIT:
  7.             pygame.quit(); sys.exit()
  8.             main = False
  9.  
  10.         if event.type == pygame.KEYDOWN:
  11.             if event.key == ord('q'):
  12.                 pygame.quit()
  13.                 sys.exit()
  14.                 main = False

也是在你的循環(huán)中,刷新你世界的背景。

如果你使用一個(gè)圖片作為背景:

 
 
 
 
  1. world.blit(backdrop, backdropbox)

如果你使用一種顏色作為背景:

 
 
 
 
  1. world.fill(BLUE)

***,告訴 Pygame 來重新刷新屏幕上的所有內(nèi)容,并推進(jìn)游戲的內(nèi)部時(shí)鐘。

 
 
 
 
  1.     pygame.display.flip()
  2.     clock.tick(fps)

保存你的文件,再次運(yùn)行它來查看你曾經(jīng)創(chuàng)建的最無趣的游戲。

退出游戲,在你的鍵盤上按 q 鍵。


本文題目:用Python和Pygame模塊構(gòu)建一個(gè)游戲框架
網(wǎng)站路徑:http://www.dlmjj.cn/article/djoohpe.html