前言
本系列文章將會以通俗易懂的對話方式進行教學,對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新,包括別的語言以及實戰都將使用對話的方式進行教學,基礎編程語言教學適用于零基礎小白,之后實戰課程也將會逐步更新。
若有想學習的內容可以在評論區留言,根據大家的要求持續更新。點贊過十萬就算化成灰我也更新下一篇。
有問題也可以在評論區留言,也可以私聊我加我好友共同交流一起進步~
我的其它教程
教程點擊進去將會有目錄
《看聊天記錄都學不會C語言?太菜了吧(1)我在大佬群里問基礎問題沒人理?——學習建議
《大學生C語言作業、習題100例白話詳解》
目錄
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》python 寫游戲好簡單啊,我用鍵盤可以隨意控制角色了【python 游戲實戰 04】—— 鍵盤控制角色移動
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》游戲角色開始動起來了,真帥!【python 游戲實戰 03】—— 角色移動
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》這是我第一次使用代碼創建出一個窗口【python 游戲實戰 02】—— 創建游戲場景
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》這是我第一次使用代碼創建出一個窗口【python 游戲實戰 01】—— 創建窗口
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(12)python 的列表我從沒想過會那么好用—— 列表
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(11)python里面while到底有多少知識點—— break continue
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(10)無底洞的循環—— 循環初窺
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(9)集萬家之長不死 python—— 導包
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(8)我們開始做一個數字小游戲吧—— 數字游戲開始做 導包
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(7)我用函數寫了個特洛伊木馬—— 自定義函數
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(6)不會這個知識點代碼越寫越難—— and or 邏輯運算
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(5)用前朝的劍斬今朝的官——if…else
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(4)小白不知道這個知識點將會錯漏百出——if 與 層級
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(3)都說123是字符不是數字——輸入與類型
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(2)在python中加號竟然如此善變——變量與運算
《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(1)裝載Python神器!亮劍!——helloworld
作者簡介
作者名:1_bit
簡介:CSDN博客專家,2020年博客之星TOP5,藍橋簽約作者。15-16年曾在網上直播,帶領一批程序小白走上程序員之路。歡迎各位小白加我咨詢我相關信息,迷茫的你會找到答案。
博客地址:https://i1bit.blog.csdn.net
🐰小C:小媛,游戲開發感覺怎么樣?
👸小媛:挺簡單的呀,小東西,就等你教了。
🐰小C:唔,那這一節我們就創建我們的主角讓他動一動。
👸小媛:怎么動?
🐰小C:當然是左右橫跳了,最近不是很火嗎?
👸小媛:昂,那你教我,我去試試。
🐰小C:其實讓游戲元素動起來其實也是超級簡單的。那你知道游戲中的元素一般是怎么來的嗎?
👸小媛:你是指游戲角色游戲人物嗎?
🐰小C:是的。
👸小媛:好像你之前說過,這些很多都是圖片吧。
🐰小C:是的,都是圖片。我們需要在游戲中添加元素就是在窗口屏幕中添加圖片。
👸小媛:嗯,那怎么添加?
🐰小C:添加圖片你必須先加載。
👸小媛:就像我在玩一些游戲的時候,會顯示正在加載資源,是這個意思嗎?
🐰小C:昂,差不多吧。那用代碼怎么編寫圖片加載你知道嗎?
👸小媛:你都沒教我怎么知道。
🐰小C:我教了呀,你還記得你的背景圖是怎么加上去的嗎?
👸小媛:唔,我明白了,你是說使用 pygame.image.load()
對圖片進行加載吧?
🐰小C:是的,那我們現在在之前的代碼上添加加載主角的圖片,我們現在正是進入游戲開發了,我們的主角也是一張很好看的圖片,資源包屏幕前的小伙伴可以加我好友私信我,我會發郵箱之類的發送給你們。
🐰小C:我們的主角就是 hero1 這張圖片了。
👸小媛:那就直接使用那個方法把這個圖片加載進去咯,是不是這樣寫。
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
🐰小C:是的,接下來我們將這個圖片在主循環中繪制到屏幕上,你知道繪制是使用什么方法嗎?
👸小媛:啊這!…我忘了。
🐰小C:繪制圖片我們使用的是 screen 對象調用 blit 方法 screen.blit()
。
👸小媛:唔,那怎么加呢?
🐰小C:直接加到代碼中就可以了。
👸小媛:是不是這樣。
import pygamepygame.init()
screen=pygame.display.set_mode((600,800))
pygame.display.set_caption("這是一個飛機游戲")
icon=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
bg=pygame.image.load(r'E:\2dsrc\src\img\bg.png')
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
pygame.display.set_icon(icon)
#游戲主循環
while True:#事件遍歷for event in pygame.event.get():if event.type==pygame.QUIT:exit()screen.blit(hero,(250,680))screen.blit(bg,(0,0))
🐰小C:是的,這樣就繪制出了我們的角色,但是你背景忘記畫了,還有每次循環都要更新,否則將會是黑屏。
啊!不好意思不好意思,我忘了。就是把 pygame.display.update()
加在末尾對吧?
🐰小C:嗯,你試試。
👸小媛:出來了,可是我的飛機在哪?
🐰小C:因為你是先畫飛機后畫的背景,肯定覆蓋掉了。
👸小媛:你意思是說,我應該先畫背景再畫飛機,這樣就不會覆蓋掉了?
🐰小C:是的,是這個意思,懂了吧?
👸小媛:哈哈哈,這回出來了。
🐰小C:接下來你只需要每次繪制圖片的時候更改 x 坐標的值就可以每次繪制出不同的對象了。
👸小媛:奧,明白了。你的意思是每次繪制都會覆蓋之前的內容,一直循環也是為了一直繪制,然后我更改繪制的點這樣就看起來像是在移動,所以只需要改變位置。
🐰小C:對的。
👸小媛:那我就先試試 x 坐標。x 坐標是左右移動的控制,越往左值越小,右則越大。那我就把 x 坐標的值存儲到一個變量中遞減試試?
🐰小C:來吧。
👸小媛:代碼出來了,是這樣。
import pygamepygame.init()
screen=pygame.display.set_mode((600,800))
pygame.display.set_caption("這是一個飛機游戲")
icon=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
bg=pygame.image.load(r'E:\2dsrc\src\img\bg.png')
hero=pygame.image.load(r'E:\2dsrc\src\img\hero1.png')
pygame.display.set_icon(icon)
heroX=250 #x坐標
#游戲主循環
while True:#事件遍歷for event in pygame.event.get():if event.type==pygame.QUIT:exit()heroX=heroX-3screen.blit(bg,(0,0))screen.blit(hero,(heroX,680))pygame.display.update()
🐰小C:嗯,不錯,使用 heroX 存儲了 x 坐標的值,然后每次循環遞減 heroX=heroX-3
。你運行一下試試吧。
👸小媛:完美,哈哈哈。