pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架
通過創建一個簡單的骰子游戲來探究 Python。現在是來從零制作你自己的游戲的時間。
在我的這系列的第一篇文章中, 我已經講解如何使用 Python 創建一個簡單的、基于文本的骰子游戲。這次,我將展示如何使用 Python 模塊 Pygame 來創建一個圖形化游戲。它將需要幾篇文章才能來得到一個確實做成一些東西的游戲,但是到這系列的結尾,你將更好地理解如何查找和學習新的 Python 模塊和如何從其基礎上構建一個應用程序。
在開始前,你必須安裝 Pygame。
安裝新的 Python 模塊
有幾種方法來安裝 Python 模塊,但是最通用的兩個是:
- 從你的發行版的軟件存儲庫
- 使用 Python 的軟件包管理器 pip
兩個方法都工作的很好,并且每一個都有它自己的一套優勢。如果你是在 Linux 或 BSD 上開發,可以利用你的發行版的軟件存儲庫來自動和及時地更新。
然而,使用 Python 的內置軟件包管理器可以給予你控制更新模塊時間的能力。而且,它不是特定于操作系統的,這意味著,即使當你不是在你常用的開發機器上時,你也可以使用它。pip 的其它的優勢是允許本地安裝模塊,如果你沒有正在使用的計算機的管理權限,這是有用的。
使用 pip
如果 Python 和 Python3 都安裝在你的系統上,你想使用的命令很可能是 pip3,它用來區分 Python 2.x 的 pip的命令。如果你不確定,先嘗試 pip3。
pip 命令有些像大多數 Linux 軟件包管理器一樣工作。你可以使用 search 搜索 Python 模塊,然后使用 install 安裝它們。如果你沒有你正在使用的計算機的管理權限來安裝軟件,你可以使用 --user 選項來僅僅安裝模塊到你的家目錄。
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 是一個 Python 模塊,這意味著它僅僅是一套可以使用在你的 Python 程序中的庫。換句話說,它不是一個像 IDLE或Ninja-IDE一樣可以讓你啟動的程序。
大家在學python的時候肯定會遇到很多難題,以及對于新技術的追求,這里推薦一下我們的Python學習扣qun:784758214,這里是python學習者聚集地!!同時,自己是一名高級python開發工程師,從基礎的python腳本到web開發、爬蟲、django、數據挖掘等,零基礎到項目實戰的資料都有整理。送給每一位python的小伙伴!
Pygame 新手入門
一個電子游戲需要一個背景設定:故事發生的地點。在 Python 中,有兩種不同的方法來創建你的故事背景:
- 設置一種背景顏色
- 設置一張背景圖片
你的背景僅是一張圖片或一種顏色。你的電子游戲人物不能與在背景中的東西相互作用,因此,不要在后面放置一些太重要的東西。它僅僅是設置裝飾。
設置你的 Pygame 腳本
要開始一個新的 Pygame 工程,先在計算機上創建一個文件夾。游戲的全部文件被放在這個目錄中。在你的工程文件夾內部保持所需要的所有的文件來運行游戲是極其重要的。
一個 Python 腳本以文件類型、你的姓名,和你想使用的許可證開始。使用一個開放源碼許可證,以便你的朋友可以改善你的游戲并與你一起分享他們的更改:
1. `#!/usr/bin/env python3` 2. `# by Seth Kenlon`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 <http://www.gnu.org/licenses/>.`然后,你告訴 Python 你想使用的模塊。一些模塊是常見的 Python 庫,當然,你想包括一個你剛剛安裝的 Pygame 模塊。
1. `import pygame# 加載 pygame 關鍵字` 2. `import sys # 讓python 使用你的文件系統` 3. `import os# 幫助 python 識別你的操作系統`由于你將用這個腳本文件做很多工作,在文件中分成段落是有幫助的,以便你知道在哪里放代碼。你可以使用塊注釋來做這些,這些注釋僅在看你的源文件代碼時是可見的。在你的代碼中創建三個塊。
1. `'''` 2. `Objects` 3. `'''`5. `# 在這里放置 Python 類和函數`7. `'''` 8. `Setup` 9. `'''`11. `# 在這里放置一次性的運行代碼`13. `'''` 14. `Main Loop` 15. `'''`17. `# 在這里放置游戲的循環代碼指令`接下來,為你的游戲設置窗口大小。注意,不是每一個人都有大計算機屏幕,所以,最好使用一個適合大多數人的計算機的屏幕大小。
這里有一個方法來切換全屏模式,很多現代電子游戲都會這樣做,但是,由于你剛剛開始,簡單起見僅設置一個大小即可。
1. `'''` 2. `Setup` 3. `'''` 4. `worldx = 960` 5. `worldy = 720`在腳本中使用 Pygame 引擎前,你需要一些基本的設置。你必須設置幀頻,啟動它的內部時鐘,然后開始 (init)Pygame 。
1. `fps = 40 # 幀頻` 2. `ani = 4 # 動畫循環` 3. `clock = pygame.time.Clock()` 4. `pygame.init()`現在你可以設置你的背景。
設置背景
在你繼續前,打開一個圖形應用程序,為你的游戲世界創建一個背景。在你的工程目錄中的 images 文件夾內部保存它為 stage.png 。
這里有一些你可以使用的自由圖形應用程序。
- Krita 是一個專業級繪圖素材模擬器,它可以被用于創建漂亮的圖片。如果你對創建電子游戲藝術作品非常感興趣,你甚至可以購買一系列的游戲藝術作品教程。
- Pinta 是一個基本的,易于學習的繪圖應用程序。
- Inkscape 是一個矢量圖形應用程序。使用它來繪制形狀、線、樣條曲線和貝塞爾曲線。
你的圖像不必很復雜,你可以以后回去更改它。一旦有了它,在你文件的 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 部分,使用紅、綠、藍 (RGB) 的值來創建一些顏色的定義。
1. `'''` 2. `Setup` 3. `'''`5. `BLUE = (25,25,200)` 6. `BLACK = (23,23,23 )` 7. `WHITE = (254,254,254)`至此,你理論上可以啟動你的游戲了。問題是,它可能僅持續了一毫秒。
為證明這一點,保存你的文件為 your-name_game.py(用你真實的名稱替換 your-name)。然后啟動你的游戲。
如果你正在使用 IDLE,通過選擇來自 “Run” 菜單的 “Run Module” 來運行你的游戲。
如果你正在使用 Ninja,在左側按鈕條中單擊 “Run file” 按鈕。
你也可以直接從一個 Unix 終端或一個 Windows 命令提示符中運行一個 Python 腳本。
1. `$ python3 ./your-name_game.py`如果你正在使用 Windows,使用這命令:
1. `py.exe your-name_game.py`啟動它,不過不要期望很多,因為你的游戲現在僅僅持續幾毫秒。你可以在下一部分中修復它。
循環
除非另有說明,一個 Python 腳本運行一次并僅一次。近來計算機的運行速度是非常快的,所以你的 Python 腳本運行時間會少于 1 秒鐘。
為強制你的游戲來處于足夠長的打開和活躍狀態來讓人看到它(更不要說玩它),使用一個 while 循環。為使你的游戲保存打開,你可以設置一個變量為一些值,然后告訴一個 while循環只要變量保持未更改則一直保存循環。
這經常被稱為一個“主循環”,你可以使用術語 main 作為你的變量。在你的 Setup 部分的任意位置添加代碼:
1. `main = True`在主循環期間,使用 Pygame 關鍵字來檢查鍵盤上的按鍵是否已經被按下或釋放。添加這些代碼到你的主循環部分:
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`10. `if event.type == pygame.KEYDOWN:` 11. `if event.key == ord('q'):` 12. ` pygame.quit()` 13. ` sys.exit()` 14. `main = False`也是在你的循環中,刷新你世界的背景。
如果你使用一個圖片作為背景:
1. `world.blit(backdrop, backdropbox)`如果你使用一種顏色作為背景:
1. `world.fill(BLUE)`最后,告訴 Pygame 來重新刷新屏幕上的所有內容,并推進游戲的內部時鐘。
1. ` pygame.display.flip()` 2. ` clock.tick(fps)`保存你的文件,再次運行它來查看你曾經創建的最無趣的游戲。
退出游戲,在你的鍵盤上按 q 鍵。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的pygame为游戏添加背景_万能的Python和Pygame模块构建一个游戏框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刺激战场注册怎么解除上限
- 下一篇: 命令方块如何召唤火龙(Linux常用命令