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

Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇

 更新時(shí)間:2022年08月04日 11:27:23   作者:acktomas  
相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動(dòng)手實(shí)現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,下面開始入門篇

視頻

觀看視頻

圖像精靈

這是我們教程系列“使用 Pygame 進(jìn)行游戲開發(fā)”的第 3 部分。它適用于對游戲開發(fā)和提高Python編碼技能感興趣的初學(xué)者/中級程序員。您應(yīng)該從第 1 部分開始:入門

變?yōu)閳D形精靈

彩色矩形很好 - 它們是開始并確保游戲正常工作的好方法,但遲早你會(huì)想要為你的精靈使用很酷的宇宙飛船圖像或角色。這就引出了第一個(gè)問題:您從哪里獲得游戲圖形。

在哪里可以找到藝術(shù)品

當(dāng)您的游戲需要美術(shù)時(shí),您有 3 種選擇:

  • 自己畫
  • 找一個(gè)藝術(shù)家為你畫畫
  • 使用來自互聯(lián)網(wǎng)的預(yù)先存在的藝術(shù)品

如果您或您的朋友有藝術(shù)傾向,1和2是可以的,但是對于大多數(shù)程序員來說,創(chuàng)建漂亮的藝術(shù)并不在我們的技能范圍內(nèi)。記住你不應(yīng)該使用你沒有權(quán)利使用的藝術(shù)是非常重要的,特別是如果您打算將其放到網(wǎng)上并讓其他人看到它。

幸運(yùn)的是,有一個(gè)很好的解決方案:OpenGameArt.org。這個(gè)網(wǎng)站加載了大量的藝術(shù),聲音,音樂等等 - 這一切都是由藝術(shù)家慷慨授權(quán)的,供您在游戲中使用。你可以在那里找到最好的藝術(shù)家之一Kenney(只要把他的名字放在搜索框中)。

您也可以訪問Kenney的網(wǎng)站。

我喜歡使用肯尼的藝術(shù)的原因是他喜歡成包發(fā)布它。這意味著您可以獲得風(fēng)格完全匹配的藝術(shù)品集,而不是嘗試混合和匹配來自多個(gè)藝術(shù)家的圖像。

在本課中,我們將使用 Kenney 的 Platformer Art Complete Pack,它有很多用于制作平臺(tái)游戲風(fēng)格的游戲的圖形。繼續(xù)下載并解壓縮。我們將使用圖像“p1_jump.png”:

您也可以只需單擊上面的圖像即可下載播放器圖像。

組織游戲組件

首先,我們需要一個(gè)文件夾來保存我們的組件,這是游戲開發(fā)人員用來指代藝術(shù)和聲音等事物的術(shù)語。我簡稱該文件夾為“img”,并將玩家圖像放入其中。

要在游戲中使用此圖像,我們需要告訴 Pygame 加載圖片文件,這意味著我們需要程序知道文件的位置。根據(jù)您使用的計(jì)算機(jī)類型,這可能會(huì)有所不同,并且我們希望能夠在任何計(jì)算機(jī)上運(yùn)行我們的程序,因此我們需要加載一個(gè)名為os 的Python庫,然后指定我們的游戲所在的位置:

 import pygame
 import random
 import os
 # set up asset folders
 game_folder = os.path.dirname(__file__)

特殊的 Python 變量__file__是指保存游戲代碼的文件夾,該命令os.path.dirname會(huì)找出該文件夾的路徑。如果您使用的是 Windows,則路徑可能如下所示:

C:\Users\chris\Documents\python\game.py

不同的操作系統(tǒng)使用不同的方法來描述事物在計(jì)算機(jī)上的位置。通過使用os.path命令,我們可以讓計(jì)算機(jī)找出正確的路徑是什么(例如,是使用“/”還是“\”)。

現(xiàn)在,我們可以指定我們的“img”文件夾:

 import pygame
 import random
 import os
 # set up asset folders
 game_folder = os.path.dirname(__file__)
 img_folder = os.path.join(game_folder, 'img')
 player_img = pygame.image.load(os.path.join(img_folder, 'p1_jump.png')).convert()

現(xiàn)在,我們已經(jīng)通過使用pygame.image.load()加載了我們的圖像,并且確保使用convert() ,這將通過將圖像轉(zhuǎn)換為在屏幕上繪制速度更快的格式來加快Pygame的繪制速度?,F(xiàn)在,我們準(zhǔn)備將 sprite 中的普通綠色方塊替換為花哨的玩家圖像:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = player_img
        self.rect = self.image.get_rect()
        self.rect.center = (WIDTH / 2, HEIGHT / 2)

請注意,我們已經(jīng)刪除了self.image.fill(GREEN)命令- 我們不再需要用純色填充它。 get_rect()仍然可以正常工作,因?yàn)樗鼤?huì)找出self.image邊界矩形。

現(xiàn)在,如果您運(yùn)行該程序,您應(yīng)該看到一個(gè)漂亮的小卡通外星人在屏幕上奔跑。但是我們有一個(gè)問題 - 一個(gè)我們看不到的問題,因?yàn)楸尘澳壳笆呛谏摹⒌撞康拿?code>screen.fill()更改為其他命令 - 我決定使用BLUE.現(xiàn)在您可以看到問題:

當(dāng)計(jì)算機(jī)上有圖像文件時(shí),該文件始終是像素的矩形網(wǎng)格。無論您繪制了什么形狀,圖像仍然有一個(gè)填充“背景”的邊框。我們需要做的是告訴Pygame忽略圖像中我們不關(guān)心的像素。在此圖像中,這些像素恰好是黑色的,因此我們可以添加以下內(nèi)容:

class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = player_img
	    self.image.set_colorkey(BLACK)
        self.rect = self.image.get_rect()
        self.rect.center = (WIDTH / 2, HEIGHT / 2)

set_colorkey()只是告訴Pygame,當(dāng)我們繪制圖像時(shí),我們要忽略指定顏色的任何像素?,F(xiàn)在我們的圖像看起來好多了:

恭喜你,你現(xiàn)在已經(jīng)學(xué)習(xí)了使用Pygame的基礎(chǔ)知識!現(xiàn)在是時(shí)候開始制作一款真正的游戲了。我們創(chuàng)建了一些教程,展示了從頭到尾創(chuàng)建完整游戲的過程。隨著我們的發(fā)展,它們變得越來越復(fù)雜,因此建議您按順序?qū)W習(xí)它們。

到此這篇關(guān)于Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇的文章就介紹到這了,更多相關(guān)Pygame圖像精靈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)決策樹ID3算法的示例代碼

    python實(shí)現(xiàn)決策樹ID3算法的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)決策樹ID3算法的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python入門教程(八)PythonCasting用法

    Python入門教程(八)PythonCasting用法

    這篇文章主要介紹了Python入門教程(八)PythonCasting用法,Python是一門非常強(qiáng)大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • Django項(xiàng)目的創(chuàng)建全過程

    Django項(xiàng)目的創(chuàng)建全過程

    本文介紹了如何在Windows系統(tǒng)上安裝和配置Python解釋器、切換默認(rèn)版本、使用虛擬環(huán)境安裝Django,并通過PyCharm創(chuàng)建和管理Django項(xiàng)目
    2025-01-01
  • opencv3/C++實(shí)現(xiàn)視頻背景去除建模(BSM)

    opencv3/C++實(shí)現(xiàn)視頻背景去除建模(BSM)

    今天小編就為大家分享一篇opencv3/C++實(shí)現(xiàn)視頻背景去除建模(BSM),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實(shí)現(xiàn)在sqlite動(dòng)態(tài)創(chuàng)建表的方法

    python實(shí)現(xiàn)在sqlite動(dòng)態(tài)創(chuàng)建表的方法

    這篇文章主要介紹了python實(shí)現(xiàn)在sqlite動(dòng)態(tài)創(chuàng)建表的方法,涉及Python操作SQLite數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)表的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • python 判斷網(wǎng)絡(luò)連通的實(shí)現(xiàn)方法

    python 判斷網(wǎng)絡(luò)連通的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇python 判斷網(wǎng)絡(luò)連通的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • pyscript的簡單應(yīng)用實(shí)現(xiàn)

    pyscript的簡單應(yīng)用實(shí)現(xiàn)

    本文主要介紹了pyscript的簡單應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • python xlsxwriter模塊的使用

    python xlsxwriter模塊的使用

    這篇文章主要介紹了python xlsxwriter模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Python 微信公眾號文章爬取的示例代碼

    Python 微信公眾號文章爬取的示例代碼

    這篇文章主要介紹了Python 微信公眾號文章爬取的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解Python相關(guān)文件常見的后綴名

    詳解Python相關(guān)文件常見的后綴名

    常見的 Python 文件后綴有:py、pyc 、pyo、 pyi、pyw、 pyd、 pyx 等。本文給大家介紹Python相關(guān)文件常見的后綴名,感興趣的朋友跟隨小編一起看看吧
    2021-05-05

最新評論

竹北市| 普定县| 界首市| 兴山县| 香港| 紫金县| 交城县| 泰安市| 福海县| 木兰县| 卓尼县| 五寨县| 呼和浩特市| 东乌珠穆沁旗| 察哈| 怀柔区| 克什克腾旗| 邢台县| 阜新| 金秀| 吴堡县| 积石山| 台江县| 博兴县| 准格尔旗| 屯留县| 隆林| 全椒县| 夏河县| 宣城市| 和顺县| 金阳县| 万年县| 交城县| 平度市| 富顺县| 福建省| 平远县| 治多县| 肥乡县| 新乐市|