最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pygame實現(xiàn)游戲最小系統(tǒng)功能詳解

 更新時間:2022年11月28日 08:32:01   作者:熱愛科技的劉同學(xué)  
這篇文章主要介紹了Pygame實現(xiàn)游戲最小系統(tǒng),Pygame是一個專門用來開發(fā)游戲的 Python 模塊,主要為開發(fā)、設(shè)計 2D 電子游戲而生,具有免費、開源,支持多種操作系統(tǒng),具有良好的跨平臺性等優(yōu)點

前言

“我有一個夢想,那就是有生之年做出一款屬于自己的游戲。”

不知道屏幕前的你是否曾經(jīng)有和我一樣的想法,總覺得市面上的游戲不完全符合你的胃口,想要自己開發(fā)出一款屬于自己的獨有的游戲。

此時,如果你正好學(xué)了Python,那么你的機會來了,python也是可以做游戲的!本篇文章將介紹Python一個非常有趣又功能強大庫,它所擁有的模塊幾乎包含了2D游戲常用功能的實現(xiàn),讓你用Python也能開發(fā)出一款小型的2d游戲,它的名字就是—— pygame。

一、什么是pygame

Pygame是一個專門用來開發(fā)游戲的 Python 模塊,主要為開發(fā)、設(shè)計 2D 電子游戲而生,具有免費、開源,支持多種操作系統(tǒng),具有良好的跨平臺性等優(yōu)點。

Pygame它提供了諸多操作模塊,比如圖像模塊(image)、聲音模塊(mixer)、輸入/輸出(鼠標(biāo)、鍵盤、顯示屏)模塊等。簡單來說,如果你使用pygame,理論上可以開發(fā)設(shè)計市面上所有的2d類型游戲(僅僅是理論上)。

但是,實際上,我學(xué)習(xí)pygame并不是說要用它來開發(fā)一款完美的游戲,pygame太過于底層,許多功能都要自己來封裝實現(xiàn)。也許你用pygame開發(fā)一款超級瑪麗時間,別人都能學(xué)會C#用unity開發(fā)和平精英了(夸張)。

那么既然如此,為什么還要來學(xué)它?

1.1 學(xué)習(xí)pygame的用處

Pygame適合小型2d游戲開發(fā),比如于飛機大戰(zhàn)、貪吃蛇、掃雷等,游戲越大,開發(fā)越困難。所以,學(xué)習(xí)pygame你可以復(fù)刻一款小時候玩的經(jīng)典游戲,比如超級瑪麗,魂斗羅之類的,然后更改一些游戲角色及內(nèi)容,哄哄家里的弟弟妹妹(就是裝X唄)。

更重要的一點,我希望你能夠通過學(xué)習(xí)pygame深入理解python面向?qū)ο蟮乃枷耄琾ython面向?qū)ο笫沁@門語言的精髓之一。掌握python面向?qū)ο蟮乃枷耄彩悄愠晒邕^python基礎(chǔ)的標(biāo)志之一,對于你后面選擇的學(xué)習(xí)方向(web開發(fā),自動化,爬蟲等等)的入門非常有幫助。有了python面向?qū)ο蟮睦喂袒A(chǔ),學(xué)習(xí)python高級的東西你會覺得也就那么回事,有一法破萬法的效果。

當(dāng)然,值得一提的是如果你真的對游戲開發(fā)感興趣,又有python基礎(chǔ),那么通過pygame你可以初步了解關(guān)于游戲開發(fā)的一些基礎(chǔ)知識,等到用pygame開發(fā)一兩個小游戲,再來思考一下自己適不適合游戲開發(fā),畢竟游戲開發(fā)的精髓都是相通的,那些高級游戲引擎只是把一些基礎(chǔ)功能封裝好了讓你用,pygame只是需要你用自己的手去打造自己的工具箱。

1.2 pygame里的游戲世界

在講解具體代碼之前,還是要科普一些pygame里游戲的基礎(chǔ)知識。

你印象中的2d游戲由哪些成分構(gòu)成?首先要有一個窗口,它規(guī)定游戲畫面占你的屏幕的尺寸大小,也可以設(shè)計游戲名字,背景等等。其次就是各種場景,一個游戲可以看做是由許多個場景組成的,比如超級瑪麗的開始菜單場景,第一關(guān),第二關(guān)等等。場景要有內(nèi)容,比如背景,主角,敵人,子彈,物品(如超級瑪麗的磚塊等等)。

在后面就是主角與敵人或者其它對象的各種交互動作,如白色瑪麗會發(fā)射子彈,踩到敵人壓扁對方等等。最后則是貫穿場景的各種音效,聲音等等。

二、pygame簡單講解

本篇文章不打算太深入pygame,旨在增加你對python的理解,以及吸引你對pygame游戲開發(fā)的一點點興趣,或者你之前學(xué)過pygame但忘記了,希望本篇文章可以幫到你。如果你想要系統(tǒng)學(xué)習(xí)pygame,建議先看B站免費教程,然后自己通過官網(wǎng)深入學(xué)pygame。

廢話不多說,我將通過自己初學(xué)時學(xué)的一個例子來讓你實現(xiàn)pygame的初步入門。

2.1 安裝pygame

pip install pygame

一直都是通過pycharm安裝python第三方庫,簡直不要太爽.

2.2 游戲最小系統(tǒng)

什么是游戲最小系統(tǒng)(不知道有沒有這個名詞)?可以理解為游戲能夠運行不報錯的最小代碼。

# 導(dǎo)入庫
import pygame
# 初始化操作,游戲開始之前,運行該代碼進行初始化
pygame.init()
# 創(chuàng)建游戲窗口,注意設(shè)置了window這個變量
window = pygame.display.set_mode((600,400))
# 設(shè)置游戲標(biāo)題
pygame.display.set_caption('游戲最小系統(tǒng)')
# 給窗口設(shè)置背景顏色
window.fill((255,255,255))

運行上面代碼你會發(fā)現(xiàn)左上角出現(xiàn)一個窗口,然后一閃即過,這是正常的。這里就要思考python代碼的運行,通過執(zhí)行上述代碼,你創(chuàng)建了一個黑色窗口,但是當(dāng)代碼執(zhí)行完會發(fā)生什么,當(dāng)然是python自動退出了。所以你要使用一定的方法不讓代碼結(jié)束運行,這就要添加“死循環(huán)”了,這很好理解,while true 會一遍又一遍的運行里面的代碼而不退出。

# 保持游戲運行狀態(tài)(游戲循環(huán))
while True:
    # 檢測事件發(fā)生,先把事件全部拿過來,再看發(fā)生的是哪一件事。
    for event in pygame.event.get():
        # 檢測關(guān)閉按鈕被點擊的事件
        if event.type == pygame.QUIT:
            # 如果按下屏幕里的X號就會退出
            exit()

看到循環(huán)里面添加的for循環(huán)及if語句嗎?它們有什么作用。由于循環(huán)會一直執(zhí)行,里面的代碼會一遍又一遍進行檢測,所以在里面就可以有很多操作了。這就是之前提到的主角與敵人或其它物品的交互部分,代碼會一直檢測發(fā)生了什么事情,并作出反應(yīng),也包括開發(fā)游戲常說的碰撞檢測。

所以結(jié)合上面,最小系統(tǒng)就出來了,它只是一個黑屏,但是它是游戲的基礎(chǔ)框架。

import pygame
# 初始化操作
pygame.init()
# 創(chuàng)建游戲窗口
window = pygame.display.set_mode((600,400))
# 設(shè)置游戲標(biāo)題
pygame.display.set_caption('游戲最小系統(tǒng)')
# 設(shè)置背景顏色
window.fill((255,255,255))
# ========游戲開始頁面靜態(tài)效果==========
# 保持游戲運行狀態(tài)(游戲循環(huán))
while True:
    # ===========游戲幀的刷新===========
    # 檢測事件
    for event in pygame.event.get():
        # 檢測關(guān)閉按鈕被點擊的事件
        if event.type == pygame.QUIT:
            # 退出
            exit()

到此這篇關(guān)于Pygame實現(xiàn)游戲最小系統(tǒng)功能詳解的文章就介紹到這了,更多相關(guān)Pygame游戲系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • python中rasterio的安裝和使用

    python中rasterio的安裝和使用

    本文主要介紹了python中rasterio的安裝和使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 手把手教你使用TensorFlow2實現(xiàn)RNN

    手把手教你使用TensorFlow2實現(xiàn)RNN

    本文主要介紹了TensorFlow2實現(xiàn)RNN,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • python數(shù)據(jù)分析之如何刪除value=0的行

    python數(shù)據(jù)分析之如何刪除value=0的行

    這篇文章主要給大家介紹了關(guān)于python數(shù)據(jù)分析之如何刪除value=0的行的相關(guān)資料,文中通過實例代碼以及圖文介紹的非常詳細,對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-12-12
  • Python?爬取微博熱搜頁面

    Python?爬取微博熱搜頁面

    這篇文章主要介紹了Python?爬取微博熱搜頁面,關(guān)于Python?爬蟲,爬取網(wǎng)頁等相關(guān)內(nèi)容一般可作為小練習(xí),下面文章Python?爬取微博熱搜頁面也如此,需要的小伙伴可以參考一下
    2022-01-01
  • 基于Python制作公交車站查詢系統(tǒng)

    基于Python制作公交車站查詢系統(tǒng)

    這篇文章主要介紹了如何利用Python制作一個簡單的公交車站查詢系統(tǒng)。文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-01-01
  • 詳解Python列表解析式的使用方法

    詳解Python列表解析式的使用方法

    Python?是一種極其多樣化和強大的編程語言!當(dāng)需要解決一個問題時,它有著不同的方法。本文將將會展示列表解析式的使用方法,需要的可以參考一下
    2022-04-04
  • Python函數(shù)參數(shù)基礎(chǔ)介紹及示例

    Python函數(shù)參數(shù)基礎(chǔ)介紹及示例

    在聲明函數(shù)的時候,一般會根據(jù)函數(shù)所要實現(xiàn)的功能來決定函數(shù)是否需要參數(shù)。在多數(shù)情況下,我們聲明的函數(shù)都會使用到參數(shù),這篇文章主要介紹了Python函數(shù)參數(shù)
    2022-08-08
  • Python正則表達式基本原理

    Python正則表達式基本原理

    正則表達式是一個特殊的符號系列,它可以幫助我們檢查某個字符串和某種模式匹配。在python中,re庫擁有全部的正則表達式的功能。想了解更多的小伙伴可以參考閱讀本文
    2023-04-04
  • python實現(xiàn)大戰(zhàn)外星人小游戲?qū)嵗a

    python實現(xiàn)大戰(zhàn)外星人小游戲?qū)嵗a

    這篇文章主要介紹了python實現(xiàn)大戰(zhàn)外星人小游戲,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • python實現(xiàn)釘釘機器人自動打卡天天早下班

    python實現(xiàn)釘釘機器人自動打卡天天早下班

    這篇文章主要為大家介紹了python實現(xiàn)釘釘機器人自動打卡天天下早班實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論

兰考县| 咸丰县| 临邑县| 城口县| 临西县| 济宁市| 虞城县| 乌什县| 睢宁县| 伊川县| 老河口市| 当涂县| 丰城市| 修文县| 轮台县| 竹北市| 内丘县| 新昌县| 铜鼓县| 铜梁县| 丰城市| 珲春市| 霸州市| 高邑县| 龙胜| 榕江县| 石棉县| 洛隆县| 洛扎县| 仙桃市| 晋中市| 泾川县| 桐乡市| 永寿县| 钟山县| 五河县| 乌苏市| 湖口县| 葵青区| 岱山县| 永顺县|