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

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,它有很多用于制作平臺游戲風(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í),我們要忽略指定顏色的任何像素。現(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圖片驗(yàn)證碼降噪和8鄰域降噪

    Python圖片驗(yàn)證碼降噪和8鄰域降噪

    這篇文章主要介紹了Python圖片驗(yàn)證碼降噪和8鄰域降噪的相關(guān)內(nèi)容,需要的小伙伴可以參考下面文章
    2021-08-08
  • Pyqt5實(shí)現(xiàn)英文學(xué)習(xí)詞典

    Pyqt5實(shí)現(xiàn)英文學(xué)習(xí)詞典

    這篇文章主要為大家詳細(xì)介紹了Pyqt5實(shí)現(xiàn)英文學(xué)習(xí)詞典的相關(guān)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python依賴包整體遷移方法詳解

    Python依賴包整體遷移方法詳解

    這篇文章主要介紹了Python依賴包整體遷移方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python編程判斷一個(gè)正整數(shù)是否為素?cái)?shù)的方法

    Python編程判斷一個(gè)正整數(shù)是否為素?cái)?shù)的方法

    這篇文章主要介紹了Python編程判斷一個(gè)正整數(shù)是否為素?cái)?shù)的方法,涉及Python數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • python中對列表的刪除和添加方法詳解

    python中對列表的刪除和添加方法詳解

    這篇文章主要為大家詳細(xì)介紹了python中對列表的刪除和添加方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python實(shí)現(xiàn)多子圖繪制系統(tǒng)的示例詳解

    Python實(shí)現(xiàn)多子圖繪制系統(tǒng)的示例詳解

    這篇文章主要介紹了如何利用python實(shí)現(xiàn)多子圖繪制系統(tǒng),文中的示例代碼講解詳細(xì),具有一定的的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • 人工智能-Python實(shí)現(xiàn)嶺回歸

    人工智能-Python實(shí)現(xiàn)嶺回歸

    本文介紹人工智能-Python實(shí)現(xiàn)嶺回歸,?是一種專用于共線性數(shù)據(jù)分析的有偏估計(jì)回歸方法,實(shí)質(zhì)上是一種改良的最小二乘估計(jì)法,通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價(jià)獲得回歸系數(shù)更為符合實(shí)際、更可靠的回歸方法,對病態(tài)數(shù)據(jù)的擬合要強(qiáng)于最小二乘法
    2022-01-01
  • Python的ORM框架SQLObject入門實(shí)例

    Python的ORM框架SQLObject入門實(shí)例

    這篇文章主要介紹了Python的ORM框架SQLObject簡單使用實(shí)例,使用Linux Mint 15、Python 2.7,需要的朋友可以參考下
    2014-04-04
  • Python配置mysql的教程(推薦)

    Python配置mysql的教程(推薦)

    下面小編就為大家?guī)硪黄狿ython配置mysql的教程(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 解決django xadmin主題不顯示和只顯示bootstrap2的問題

    解決django xadmin主題不顯示和只顯示bootstrap2的問題

    這篇文章主要介紹了解決django xadmin主題不顯示和只顯示bootstrap2的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03

最新評論