<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
這是我們教學系列“使用 Pygame 進行遊戲開發”的第 3 部分。它適用於對遊戲開發和提高Python編碼技能感興趣的初學者/中級程式設計師。您應該從第 1 部分開始:入門
彩色矩形很好 - 它們是開始並確保遊戲正常工作的好方法,但遲早你會想要為你的精靈使用很酷的宇宙飛船影象或角色。這就引出了第一個問題:您從哪裡獲得遊戲圖形。
當您的遊戲需要美術時,您有 3 種選擇:
如果您或您的朋友有藝術傾向,1和2是可以的,但是對於大多數程式設計師來說,建立漂亮的藝術並不在我們的技能範圍內。記住你不應該使用你沒有權利使用的藝術是非常重要的,特別是如果您打算將其放到網上並讓其他人看到它。
幸運的是,有一個很好的解決方案:OpenGameArt.org。這個網站載入了大量的藝術,聲音,音樂等等 - 這一切都是由藝術家慷慨授權的,供您在遊戲中使用。你可以在那裡找到最好的藝術家之一Kenney(只要把他的名字放在搜尋方塊中)。
您也可以存取Kenney的網站。
我喜歡使用肯尼的藝術的原因是他喜歡成包釋出它。這意味著您可以獲得風格完全匹配的藝術品集,而不是嘗試混合和匹配來自多個藝術家的影象。
在本課中,我們將使用 Kenney 的 Platformer Art Complete Pack,它有很多用於製作平臺遊戲風格的遊戲的圖形。繼續下載並解壓縮。我們將使用影象“p1_jump.png”:
您也可以只需單擊上面的影象即可下載播放器影象。
首先,我們需要一個資料夾來儲存我們的元件,這是遊戲開發人員用來指代藝術和聲音等事物的術語。我簡稱該資料夾為“img”,並將玩家影象放入其中。
要在遊戲中使用此影象,我們需要告訴 Pygame 載入圖片檔案,這意味著我們需要程式知道檔案的位置。根據您使用的計算機型別,這可能會有所不同,並且我們希望能夠在任何計算機上執行我們的程式,因此我們需要載入一個名為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:UserschrisDocumentspythongame.py
不同的作業系統使用不同的方法來描述事物在計算機上的位置。通過使用os.path
命令,我們可以讓計算機找出正確的路徑是什麼(例如,是使用“/”還是“”)。
現在,我們可以指定我們的“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()
現在,我們已經通過使用pygame.image.load()
載入了我們的影象,並且確保使用convert()
,這將通過將影象轉換為在螢幕上繪製速度更快的格式來加快Pygame的繪製速度。現在,我們準備將 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)
請注意,我們已經刪除了self.image.fill(GREEN)
命令- 我們不再需要用純色填充它。 get_rect()
仍然可以正常工作,因為它會找出self.image
邊界矩形。
現在,如果您執行該程式,您應該看到一個漂亮的小卡通外星人在螢幕上奔跑。但是我們有一個問題 - 一個我們看不到的問題,因為背景目前是黑色的。將底部的命令screen.fill()
更改為其他命令 - 我決定使用BLUE
.現在您可以看到問題:
當計算機上有影象檔案時,該檔案始終是畫素的矩形網格。無論您繪製了什麼形狀,影象仍然有一個填充“背景”的邊框。我們需要做的是告訴Pygame忽略影象中我們不關心的畫素。在此影象中,這些畫素恰好是黑色的,因此我們可以新增以下內容:
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,當我們繪製影象時,我們要忽略指定顏色的任何畫素。現在我們的影象看起來好多了:
恭喜你,你現在已經學習了使用Pygame的基礎知識!現在是時候開始製作一款真正的遊戲了。我們建立了一些教學,展示了從頭到尾建立完整遊戲的過程。隨著我們的發展,它們變得越來越複雜,因此建議您按順序學習它們。
到此這篇關於Pygame遊戲開發之太空射擊實戰影象精靈下篇的文章就介紹到這了,更多相關Pygame影象精靈內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45