精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Python和Pygame模塊構(gòu)建一個游戲框架

開發(fā) 后端
在我的這系列的第一篇文章 中, 我已經(jīng)講解如何使用 Python 創(chuàng)建一個簡單的、基于文本的骰子游戲。這次,我將展示如何使用 Python 模塊 Pygame 來創(chuàng)建一個圖形化游戲。

 使用Python和Pygame模塊構(gòu)建一個游戲框架

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

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

在開始前,你必須安裝 Pygame

安裝新的 Python 模塊

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

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

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

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

使用 pip

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

pip 命令有些像大多數(shù) Linux 軟件包管理器一樣工作。你可以使用 search 搜索 Python 模塊,然后使用 install 安裝它們。如果你沒有你正在使用的計算機的管理權(quán)限來安裝軟件,你可以使用 --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 程序中的庫。換句話說,它不是一個像 IDLENinja-IDE 一樣可以讓你啟動的程序。

Pygame 新手入門

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

  • 設置一種背景顏色
  • 設置一張背景圖片

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

設置你的 Pygame 腳本

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

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

  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 <http://www.gnu.org/licenses/>.

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

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

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

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

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

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

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

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

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

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

設置背景

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

這里有一些你可以使用的自由圖形應用程序。

  • Krita 是一個專業(yè)級繪圖素材模擬器,它可以被用于創(chuàng)建漂亮的圖片。如果你對創(chuàng)建電子游戲藝術(shù)作品非常感興趣,你甚至可以購買一系列的游戲藝術(shù)作品教程
  • 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) 的值來創(chuàng)建一些顏色的定義。

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

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

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

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

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

你也可以直接從一個 Unix 終端或一個 Windows 命令提示符中運行一個 Python 腳本。

  1. $ python3 ./your-name_game.py

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

  1. py.exe your-name_game.py

啟動它,不過不要期望很多,因為你的游戲現(xiàn)在僅僅持續(xù)幾毫秒。你可以在下一部分中修復它。

循環(huán)

除非另有說明,一個 Python 腳本運行一次并僅一次。近來計算機的運行速度是非常快的,所以你的 Python 腳本運行時間會少于 1 秒鐘。

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

這經(jīng)常被稱為一個“主循環(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)中,刷新你世界的背景。

如果你使用一個圖片作為背景:

  1. world.blit(backdrop, backdropbox)

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

  1. world.fill(BLUE)

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

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

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

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

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2012-01-04 13:55:23

Canvas

2023-09-25 12:35:27

Python

2021-08-27 12:16:34

fastjarJAR文件Java

2016-09-14 17:48:44

2018-03-19 17:40:10

Python區(qū)塊鏈

2022-03-24 07:57:58

Python水果忍者游戲

2020-11-30 13:16:29

Python編程語言

2017-11-23 08:30:26

編程Python擲骰子游戲

2017-06-08 15:53:38

PythonWeb框架

2013-01-14 09:44:58

JavaScriptJSJS框架

2019-09-23 09:11:02

Python文本編輯器操作系統(tǒng)

2019-07-05 08:39:39

GoSQL解析器

2020-11-30 06:20:13

javascript

2017-11-21 09:30:00

2020-07-15 15:09:21

Python掃雷游戲Windows

2025-10-16 07:15:00

2017-11-21 09:20:06

深度學習TensorFlow游戲AI

2021-08-17 09:00:00

架構(gòu)PythonWeb

2019-05-13 19:00:57

OpenStackDesignate系統(tǒng)運維

2021-05-04 16:38:54

Linux數(shù)學游戲
點贊
收藏

51CTO技術(shù)棧公眾號

伊人精品久久久久7777| 久久综合久久美利坚合众国| 日韩精品―中文字幕| 日韩私人影院| 国产在线精品免费| 91成人精品网站| 大地资源高清在线视频观看| 国产精品香蕉| 欧美日韩成人综合天天影院| 800av在线免费观看| 免费看男男www网站入口在线| 美女脱光内衣内裤视频久久影院| 欧美激情视频在线观看| 欧美aaa级片| 国产精品网址| 欧美精品丝袜中出| 中国丰满人妻videoshd| 国产精品一区二区三区视频网站| 2020国产精品| 国产精品久久久久久久久久久久| 欧美日韩高清丝袜| 久久精品色播| 日韩午夜激情av| 日本久久久久久久久久久久| 国产免费拔擦拔擦8x在线播放| 亚洲日本丝袜连裤袜办公室| 热re99久久精品国99热蜜月 | 欧美中文字幕不卡| 久久精品视频16| 欧美黄色视屏| 玉足女爽爽91| 粉嫩av一区二区三区天美传媒 | 精品视频一区二区在线| 超碰中文在线| 亚洲影视在线播放| 国产又粗又大又爽的视频| 国产视频网站在线| 久久久久亚洲综合| 久久涩涩网站| 欧洲一级在线观看| 91亚洲精品久久久蜜桃| 精品国产一区二区三区四区精华| 亚洲AV无码乱码国产精品牛牛 | 天天影视网天天综合色在线播放| 开心色怡人综合网站| 欧美一区二区三区黄片| 成人视屏免费看| 成人在线看片| 人妻夜夜爽天天爽| 99re这里只有精品首页| 国产一区二区三区四区hd| 欧美一区二区黄片| 99国产精品久久久| 你懂的网址一区二区三区| 四虎精品在永久在线观看| 95精品视频在线| 奇米视频888战线精品播放| 日本不卡免费播放| 国产日韩av一区| 亚洲精品视频一区二区三区| 亚洲搞黄视频| 一区二区三区加勒比av| 97干在线视频| 麻豆国产在线| 在线日韩一区二区| wwwwwxxxx日本| 精品一区二区三区中文字幕| 日韩欧美一区二区不卡| 一边摸一边做爽的视频17国产| 久久精品福利| 夜夜嗨av色一区二区不卡| 最新日韩免费视频| 欧美三级乱码| 丝袜诱惑制服诱惑色一区在线观看 | 图片区小说区区亚洲影院| 精品国产一区二区三区麻豆免费观看完整版| 欧美自拍偷拍第一页| av成人老司机| 五月天色一区| av网站在线免费看推荐| 亚洲国产日韩a在线播放| 男人的天堂99| 97久久中文字幕| 精品国产电影一区二区| 最近中文字幕在线mv视频在线| 99久久亚洲精品蜜臀| 久久99久久久久久久噜噜| 日韩精品无码一区二区| 日本欧美加勒比视频| 亚洲精品免费在线视频| 亚洲av成人无码网天堂| 国产精品美女久久久久av爽李琼| 欧美精品在欧美一区二区| 久九九久频精品短视频| 5566中文字幕一区二区电影 | 日本精品入口免费视频| 国产乱人伦偷精品视频免下载| 激情五月综合色婷婷一区二区 | 欧美自拍一区| 日韩在线观看免费高清| 国产免费观看av| 国内欧美视频一区二区| 久久精品国产一区二区三区日韩 | 51视频国产精品一区二区| 一区二区三区日| 91丨porny丨蝌蚪视频| 在线国产99| 电影亚洲精品噜噜在线观看| 日韩精品一区二区三区老鸭窝 | 成人有码在线播放| 免费理论片在线观看播放老| 亚洲一区二区三区四区不卡| www欧美激情| 精品中文字幕一区二区三区av| 久国内精品在线| 91麻豆成人精品国产免费网站| 91视频在线看| 日韩欧美不卡在线| 欧美三级电影网址| 亚洲视频免费一区| 久草国产精品视频| 国产91色综合久久免费分享| 国产精品夜夜夜爽张柏芝| 三级成人黄色影院| 日韩精品高清视频| 国产乡下妇女做爰视频| 国产精品一卡二| 中文一区一区三区免费| 欧美与亚洲与日本直播| 亚洲女成人图区| 91porny在线| 成人免费视频一区二区| 黄网站色视频免费观看| 91麻豆精品一二三区在线| 日韩在线视频播放| 国产一区二区三区视频免费观看 | 亚洲欧洲在线播放| av黄色在线看| 91免费国产在线| 四虎永久在线精品无码视频| 亚州国产精品| 日韩av第一页| 国产精品麻豆一区二区三区| 91极品视觉盛宴| 国产精品久久免费观看| 麻豆91在线播放| 亚洲一区三区视频在线观看| 欧美日韩伦理一区二区| 日韩在线观看免费| 国产日韩精品suv| 亚洲伦理在线精品| 绯色av蜜臀vs少妇| 99re国产精品| 青青成人在线| 亚洲久草在线| 欧美精品久久久久久久久| 熟妇高潮一区二区高潮| 精品欧美国产一区二区三区| 中文字幕丰满孑伦无码专区| 久久精品人人| 亚洲一区二区三区乱码| 国产精品3区| 久久久久久久久网站| 亚洲 精品 综合 精品 自拍| 欧美视频裸体精品| 91动漫免费网站| 国产精品夜夜嗨| 97超碰青青草| 日韩伦理视频| 电影午夜精品一区二区三区| www.51av欧美视频| 亚洲色无码播放| 国产精品无码免费播放| 亚洲亚洲精品在线观看| 少妇按摩一区二区三区| 寂寞少妇一区二区三区| 欧美一区二区激情| 国产一区二区三区四区二区| 成人午夜激情免费视频| 丰满诱人av在线播放| 亚洲美女av电影| 国产aⅴ爽av久久久久成人| 午夜精品福利一区二区三区av| 精品成人av一区二区三区| 国产综合色视频| av天堂永久资源网| 亚洲a一区二区三区| 久久99精品久久久久久秒播放器| 国产精品亚洲d| 欧美精品久久久久久久免费观看| 免费人成在线观看网站| 日韩三级在线免费观看| 色老头在线视频| 亚洲一级在线观看| 成人午夜免费影院| 91日韩在线专区| 99精品视频免费版的特色功能| 午夜亚洲视频| 青青草综合视频| 大片网站久久| 精品无人区一区二区三区竹菊| 欧美风情在线视频| 日本精品久久久久影院| 最爽无遮挡行房视频在线| 亚洲天堂影视av| 天天操天天操天天操| 91精品国产综合久久久久久| 日韩手机在线视频| 五月综合激情婷婷六月色窝| 99久久婷婷国产综合| 国产丝袜美腿一区二区三区| 美女黄色一级视频| 国产精品亚洲成人| 奇米视频7777| 日韩电影免费一区| 国产a级一级片| 亚洲欧洲视频| 高清无码视频直接看| 久久久久电影| 亚洲一区二区三区精品动漫| 蜜桃国内精品久久久久软件9| 国产精品美女xx| aiai久久| 91视频最新| 日韩在线精品强乱中文字幕| 国产精品亚洲激情| 成人黄色免费观看| 国产精品久久不能| 户外露出一区二区三区| 欧洲亚洲女同hd| 高清av不卡| 欧洲成人在线观看| 欧美男女交配| 国产激情综合五月久久| 欧美天堂视频| 国产精品扒开腿爽爽爽视频| 中文字幕高清在线播放| 91超碰caoporn97人人| 性孕妇free特大另类| 97婷婷大伊香蕉精品视频| 波多野结衣精品| 久久久久久久999精品视频| 成年网站在线视频网站| 久久欧美在线电影| 欧美aa在线| 日本一欧美一欧美一亚洲视频| 韩国精品主播一区二区在线观看| 国产精品18久久久久久麻辣| 无人区在线高清完整免费版 一区二| 国产精品久久久av| 亚洲视频资源| av一区二区三区免费| 97青娱国产盛宴精品视频| 国产精品久久久久久久久久久久午夜片| 成人午夜三级| 欧美日韩电影一区二区| 日本道不卡免费一区| 在线视频福利一区| 欧美色综合网| 欧美 国产 日本| 日本大胆欧美人术艺术动态| 国产高清av片| 99久久99久久精品免费观看| a天堂中文字幕| 中文字幕一区日韩精品欧美| 欧美丰满艳妇bbwbbw| 五月婷婷欧美视频| 小泽玛利亚一区二区三区视频| 3atv一区二区三区| 蜜桃久久一区二区三区| 国产亚洲综合久久| 91一区二区三区在线| 97超碰国产精品女人人人爽| 成人久久网站| 国产伦精品一区二区三区视频黑人| 天天躁日日躁狠狠躁欧美| 午夜精品亚洲一区二区三区嫩草| 久久久久久久久久久久久久| 日本www在线视频| 免费成人性网站| 久久久久国产精品无码免费看| 国产欧美精品一区二区色综合 | 欧美影院一区二区三区| xxxx18国产| 亚洲免费伊人电影在线观看av| 久热国产在线| 日韩av电影手机在线| 亚洲一区电影| 亚洲欧美丝袜| 另类av一区二区| 韩国一区二区三区四区| 国产精品免费视频观看| 日本一级淫片色费放| 欧美日韩的一区二区| 人人九九精品| 欧美丰满少妇xxxxx做受| julia一区二区三区中文字幕| www.久久久| 91超碰国产精品| 久久99爱视频| 久久久国产精华| 四虎永久在线精品| 欧美一三区三区四区免费在线看| 国产香蕉在线| 2023亚洲男人天堂| 99精品国产一区二区三区2021 | 91超碰这里只有精品国产| 色视频在线观看| 国产69精品99久久久久久宅男| 伊人国产精品| 婷婷久久五月天| 麻豆精品网站| 亚洲精品视频大全| 亚洲一区欧美一区| 精品国产无码一区二区| 日韩中文字幕免费看| 卡通欧美亚洲| 久久伊人一区| 在线亚洲精品| 日本一卡二卡在线| 亚洲国产sm捆绑调教视频 | 亚洲黄色www| 免费污视频在线观看| 亚洲r级在线观看| 亚洲综合激情在线| 无套内谢丰满少妇中文字幕| 亚洲欧洲日韩女同| 在线观看中文字幕2021| 尤物精品国产第一福利三区 | 亚洲av熟女国产一区二区性色| 欧美日韩另类在线| 五月天婷婷在线观看| 国语自产精品视频在线看| 亚洲一区二区三区日本久久九| 手机成人av在线| 国产综合色在线| 蜜臀久久精品久久久用户群体| 5月丁香婷婷综合| 99自拍视频在线观看| 亚洲一区二区三区视频| 91精品电影| 国产性猛交96| 激情成人中文字幕| 黄色小视频在线观看| 国产成人精品久久久| 日本电影一区二区| 无码少妇一区二区三区芒果| 国产欧美精品区一区二区三区 | 国精产品一区二区三区有限公司| 欧美婷婷久久| 麻豆精品久久精品色综合| 久艹在线观看视频| 日韩精品中午字幕| 黄在线观看免费网站ktv| 久久久久久欧美精品色一二三四| 视频一区视频二区中文字幕| 国产亚洲精品熟女国产成人| 欧美三级日韩在线| 亚洲www色| 久久久久一区二区| 蜜乳av一区二区| 久久久久久久福利| 亚洲福利小视频| 色豆豆成人网| 欧美日韩在线免费观看视频| 国产大片一区二区| 国产精品国产三级国产专区52| 亚洲天堂av图片| 9999精品免费视频| 青青草精品视频在线| 久久久精品一品道一区| 国产精品无码久久av| 97热精品视频官网| 成人羞羞视频播放网站| 欧美图片自拍偷拍| 日韩欧美大尺度| a毛片在线观看| 久久久久久a亚洲欧洲aⅴ| 麻豆国产精品777777在线| 国产精品30p| 色琪琪综合男人的天堂aⅴ视频| 亚洲一区二区三区中文字幕在线观看| 国产91对白刺激露脸在线观看| 一区视频在线播放| 无码精品人妻一区二区三区影院| 国产精品永久免费| 国产一区二区三区的电影| 日本精品在线免费观看| 亚洲免费小视频| 亚洲免费一区三区| 午夜免费高清视频| 五月天网站亚洲| 51xtv成人影院| 色噜噜一区二区| fc2成人免费人成在线观看播放| 中文字幕日本人妻久久久免费 | 欧美wwwxxxx| 国产成人一区二区三区影院| 性猛交╳xxx乱大交| 欧美日韩在线一区二区|