Pygame游戲開(kāi)發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇_第1頁(yè)
Pygame游戲開(kāi)發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇_第2頁(yè)
Pygame游戲開(kāi)發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇_第3頁(yè)
Pygame游戲開(kāi)發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇_第4頁(yè)
Pygame游戲開(kāi)發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Pygame游戲開(kāi)發(fā)之太空射擊實(shí)戰(zhàn)圖像精靈下篇目錄視頻圖像精靈變?yōu)閳D形精靈在哪里可以找到藝術(shù)品組織游戲組件

視頻

觀看視頻

圖像精靈

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

變?yōu)閳D形精靈

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

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

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

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

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

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

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

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

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

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

組織游戲組件

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

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

importpygame

importrandom

importos

#setupassetfolders

game_folder=os.path.dirname(__file__)

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

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

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

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

importpygame

importrandom

importos

#setupassetfolders

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)通過(guò)使用pygame.image.load()加載了我們的圖像,并且確保使用convert(),這將通過(guò)將圖像轉(zhuǎn)換為在屏幕上繪制速度更快的格式來(lái)加快Pygame的繪制速度?,F(xiàn)在,我們準(zhǔn)備將sprite中的普通綠色方塊替換為花哨的玩家圖像:

classPlayer(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)

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

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

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

classPlayer(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í),我們要忽略

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論