python?pygame英雄循環(huán)飛行及作業(yè)示例
1. 英雄的簡單動(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(長)∗126(高)102(長)*126(高)102(長)∗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ī)從屏幕底部到屏幕頂部,然后再從屏幕底部出發(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:
# 希望無限循環(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)文章
Python實(shí)現(xiàn)多個(gè)Word文檔合并
在Python中,可以使用Python-docx庫來操作Word文檔,所以下面小編就為大家介紹一下如何利用Python-docx實(shí)現(xiàn)多個(gè)Word文檔合并功能吧,需要的可以參考一下2023-06-06
Python Pandas 如何shuffle(打亂)數(shù)據(jù)
這篇文章主要介紹了Python Pandas 如何shuffle(打亂)數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
實(shí)踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250
這篇文章主要介紹了實(shí)踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250的過程,文中的環(huán)境基于Windows操作系統(tǒng),需要的朋友可以參考下2016-01-01
解決pyinstaller 打包exe文件太大,用pipenv 縮小exe的問題
這篇文章主要介紹了解決pyinstaller 打包exe文件太大,用pipenv 縮小exe的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07

