python?pygame英雄循環(huán)飛行及作業(yè)示例
1. 英雄的簡(jiǎn)單動(dòng)畫實(shí)現(xiàn)
開發(fā)需求:
- 在游戲初始化定義一個(gè)pygame.Rect的變量記錄英雄的初始位置
- 在游戲循環(huán)中每次讓英雄的
y-1--向上移動(dòng) y<=0時(shí),將英雄移動(dòng)到屏幕的底部(即飛機(jī)從底部飛行到頂部時(shí),將飛機(jī)再次移動(dòng)到底部向上飛行)- 英雄飛機(jī)向上飛行,當(dāng)英雄完全從上方飛出屏幕后
- 將飛機(jī)移動(dòng)到屏幕的底部
提示:
- 每一次調(diào)用
update()方法之前,需要把所有的游戲圖像都重新繪制一遍 - 而且應(yīng)該最先重新繪制背景圖像
- 考慮新增if條件判斷,若英雄飛機(jī)的y坐標(biāo)已經(jīng)超出屏幕范圍,為其重新賦值
- 此if條件判斷應(yīng)建立在修改飛機(jī)位置代碼下方
- 若想飛機(jī)完全飛出屏幕,相當(dāng)于判斷那飛機(jī)的y坐標(biāo)值是否 <=−126(英雄飛機(jī)高度)<=-126(英雄飛機(jī)高度)<=−126(英雄飛機(jī)高度),因?yàn)橛⑿埏w機(jī)的尺寸為 102(長(zhǎng))∗126(高)102(長(zhǎng))*126(高)102(長(zhǎng))∗126(高)
- 若想把飛機(jī)挪動(dòng)到屏幕底部,需要將其 yyy 坐標(biāo)賦值為背景圖片的高度642
2. 案例演示
2.1 代碼演示
具體代碼演示如下所示:代碼部分在上篇文章(英雄動(dòng)畫效果實(shí)現(xiàn))的代碼基礎(chǔ)上,新增if條件判斷,并且在if條件中為英雄飛機(jī)的y屬性賦值。從而實(shí)現(xiàn)英雄飛機(jī)從屏幕底部到屏幕頂部,然后再?gòu)钠聊坏撞砍霭l(fā)到屏幕頂部,這種循環(huán)飛行動(dòng)畫效果。
import pygame
pygame.init()
# 創(chuàng)建游戲的窗口 640*642
screen = pygame.display.set_mode((640, 642))
# 繪制背景圖像
bg = pygame.image.load("./飛機(jī)大戰(zhàn)資料包/images/background1.jpg")
screen.blit(bg, (0, 0))
# 繪制英雄的飛機(jī)
hero = pygame.image.load("./飛機(jī)大戰(zhàn)資料包/images/me1.png")
screen.blit(hero, (280, 500))
# 可以在所有繪制工作完成之后,統(tǒng)一調(diào)用update方法
pygame.display.update()
# 創(chuàng)建時(shí)鐘對(duì)象
clock = pygame.time.Clock()
# 游戲循環(huán)->意味著游戲的正式開始
# 1. 定義rect記錄飛機(jī)的初始位置
hero_rect = pygame.Rect(280, 500, 102, 126)
# 游戲循環(huán)->意味著游戲的正式開始
while True:
# 希望無(wú)限循環(huán)內(nèi)部的代碼每秒鐘重復(fù)循環(huán)60次
# 可以指定循環(huán)體內(nèi)部的代碼執(zhí)行的頻率
clock.tick(60)
# 2. 修改飛機(jī)的位置
hero_rect.y -= 1
# 判斷飛機(jī)的位置
if hero_rect.y <= -126:
hero_rect.y = 642
# 3. 調(diào)用blit方法繪制圖像
# 先繪制背景,在繪制飛機(jī),就不會(huì)留下殘影(背景把上一次的飛機(jī)遮擋)
screen.blit(bg, (0, 0))
screen.blit(hero, hero_rect)
# 4. 調(diào)用update方法更新顯示
pygame.display.update()
pygame.quit()2.2 運(yùn)行結(jié)果
運(yùn)行結(jié)果如下圖所示:運(yùn)行結(jié)果為動(dòng)畫效果,此處以圖片效果進(jìn)行展示。
此時(shí),飛機(jī)從底部正在向頂部飛行,如下圖所示:

飛機(jī)運(yùn)行完從底部飛到頂部,此時(shí)又從底部重新出現(xiàn),如下圖所示:

以上就是python pygame英雄循環(huán)飛行及作業(yè)示例的詳細(xì)內(nèi)容,更多關(guān)于python pygame循環(huán)飛行的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
對(duì)python3 一組數(shù)值的歸一化處理方法詳解
今天小編就為大家分享一篇對(duì)python3 一組數(shù)值的歸一化處理方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
詳解Python的Flask框架中生成SECRET_KEY密鑰的方法
密鑰值的生成功能十分重要,幾乎也是各大Web開發(fā)框架的標(biāo)配,Flask當(dāng)然也不例外,這里我們就來(lái)詳解Python的Flask框架中生成SECRET_KEY密鑰的方法2016-06-06
編寫Python小程序來(lái)統(tǒng)計(jì)測(cè)試腳本的關(guān)鍵字
這篇文章主要介紹了編寫Python小程序來(lái)統(tǒng)計(jì)測(cè)試腳本的關(guān)鍵字的方法,文中的實(shí)例不僅可以統(tǒng)計(jì)關(guān)鍵字?jǐn)?shù)量,還可以按主關(guān)鍵字來(lái)歸類,需要的朋友可以參考下2016-03-03
解讀Python腳本的常見(jiàn)參數(shù)獲取和處理方式
這篇文章主要介紹了Python腳本的常見(jiàn)參數(shù)獲取和處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
python+pytest接口自動(dòng)化之token關(guān)聯(lián)登錄的實(shí)現(xiàn)
公司某管理后臺(tái)系統(tǒng),登錄后返回token,接著去請(qǐng)求其他接口時(shí)請(qǐng)求頭中都需要加上這個(gè)token,否則提示請(qǐng)先登錄,今天通過(guò)本文給大家介紹下python+pytest接口自動(dòng)化之token關(guān)聯(lián)登錄的實(shí)現(xiàn),感興趣的朋友一起看看吧2022-04-04
python使用win32com庫(kù)播放mp3文件的方法
這篇文章主要介紹了python使用win32com庫(kù)播放mp3文件的方法,涉及Python使用win32com庫(kù)操作音頻文件的相關(guān)技巧,需要的朋友可以參考下2015-05-05

