背景交替滾動的思路確定
游戲啟動后,背景圖像會連續(xù)不斷地向下方移動截酷,在視覺上產(chǎn)生英雄飛機(jī)不斷向上方飛行的錯(cuò)覺——在很多跑酷類游戲中常用的套路
- 游戲的背景不斷變化
- 游戲的主角位置保持不變
實(shí)現(xiàn)思路分析
- 創(chuàng)建兩張背景圖像精靈
- 第一張完全和屏幕窗口重合
- 第二張?jiān)谄聊坏恼戏?/li>
- 兩張圖像一起向下方移動
self.react.y += self.speed
- 當(dāng)任意背景精靈的
rect.y >= 屏幕高度
說明已經(jīng)移動到屏幕下方 - 將移動到屏幕下方的這張圖像設(shè)置到屏幕的正上方
rect.y = -rect.height
設(shè)計(jì)背景類
update()方法:
判斷是否移動出屏幕涮拗,如果是,將圖像設(shè)置到屏幕的正上方迂苛,從而實(shí)現(xiàn)交替滾動三热,使用繼承實(shí)現(xiàn)
繼承:如果父類提供的方法,不能滿足子類的需求:
- 派生一個(gè)子類
- 在子類中針對特有的需求三幻,重寫父類的方法就漾,并且進(jìn)行擴(kuò)展
顯示游戲背景
背景精靈的基本實(shí)現(xiàn)
在plane_sprites
新建Background
繼承自GameSprite
在Plane_main.py中顯示背景精靈
- 在
__create_sprites
方法中創(chuàng)建背景精靈與精靈組 - 在
__update_sprites
方法中,讓背景精靈組調(diào)用update()
和draw()
方法
__create_sprites方法:
__update_sprites方法:
利用初始化方法念搬,簡化背景精靈創(chuàng)建
在主程序中抑堡,創(chuàng)建的兩個(gè)背景精靈,傳入了相同的圖像文件路徑朗徊,創(chuàng)建第二個(gè)背景精靈時(shí)首妖,在主程序中設(shè)置了背景精靈的圖像位置
思考:精靈初始位置的設(shè)置,應(yīng)該由主程序負(fù)責(zé)還是由精靈自己負(fù)責(zé)爷恳?
答:由精靈自己負(fù)責(zé)
- 根據(jù)面向?qū)ο笤O(shè)計(jì)原則有缆,應(yīng)該將對象的職責(zé)封裝到類的代碼內(nèi)部
-
盡量簡化程序調(diào)用一方的代碼調(diào)用
初始化方法:
- 直接指定背景圖片
-
is_alt
判斷是否是另一張圖像,False
表示第一張圖像温亲,需要與屏幕重合棚壁,True
表示另一張圖像,在屏幕的正上方