欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

一、什么是pygame

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

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

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

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

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

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

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

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

1.2 pygame里的游戲世界

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

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

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

二、pygame簡(jiǎn)單講解

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

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

2.1 安裝pygame

pip install pygame

一直都是通過pycharm安裝python第三方庫(kù),簡(jiǎn)直不要太爽.

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

什么是游戲最小系統(tǒng)(不知道有沒有這個(gè)名詞)?可以理解為游戲能夠運(yùn)行不報(bào)錯(cuò)的最小代碼。

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

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

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

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

所以結(jié)合上面,最小系統(tǒng)就出來了,它只是一個(gè)黑屏,但是它是游戲的基礎(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)效果==========
# 保持游戲運(yùn)行狀態(tài)(游戲循環(huán))
while True:
    # ===========游戲幀的刷新===========
    # 檢測(cè)事件
    for event in pygame.event.get():
        # 檢測(cè)關(guān)閉按鈕被點(diǎn)擊的事件
        if event.type == pygame.QUIT:
            # 退出
            exit()

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

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論