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

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

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

視頻

觀看視頻

圖像精靈

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

變?yōu)閳D形精靈

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

在哪里可以找到藝術品

當您的游戲需要美術時,您有 3 種選擇:

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

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

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

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

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

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

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

組織游戲組件

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

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

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

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

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

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

現(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)在,我們準備將 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()仍然可以正常工作,因為它會找出self.image邊界矩形。

現(xiàn)在,如果您運行該程序,您應該看到一個漂亮的小卡通外星人在屏幕上奔跑。但是我們有一個問題 - 一個我們看不到的問題,因為背景目前是黑色的。將底部的命令screen.fill()更改為其他命令 - 我決定使用BLUE.現(xiàn)在您可以看到問題:

當計算機上有圖像文件時,該文件始終是像素的矩形網(wǎng)格。無論您繪制了什么形狀,圖像仍然有一個填充“背景”的邊框。我們需要做的是告訴Pygame忽略圖像中我們不關心的像素。在此圖像中,這些像素恰好是黑色的,因此我們可以添加以下內(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,當我們繪制圖像時,我們要忽略指定顏色的任何像素?,F(xiàn)在我們的圖像看起來好多了:

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

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

相關文章

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

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

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

    Python入門教程(八)PythonCasting用法

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

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

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

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

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

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

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

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

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

    pyscript的簡單應用實現(xiàn)

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

    python xlsxwriter模塊的使用

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

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

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

    詳解Python相關文件常見的后綴名

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

最新評論

泸定县| 哈尔滨市| 巴青县| 会理县| 凤城市| 阜康市| 汾西县| 浦东新区| 崇左市| 沽源县| 金山区| 河东区| 麻阳| 新源县| 吴堡县| 兴海县| 双流县| 建湖县| 方山县| 兴安盟| 稻城县| 淮滨县| 奈曼旗| 红河县| 扬中市| 兴隆县| 普定县| 寿宁县| 尼勒克县| 开阳县| 佳木斯市| 乌拉特前旗| 博乐市| 华容县| 康乐县| 高邮市| 永福县| 时尚| 平凉市| 莲花县| 当雄县|