背景交替滾動的思路確定
執行 備課**,觀察 背景影象的顯示效果:
解決辦法
建立兩張背景影象精靈
兩張影象 一起向下方運動
當 任意背景精靈 的 rect.y >= 螢幕的高度 說明已經 移動到螢幕下方
將 移動到螢幕下方的這張影象 設定到 螢幕的正上方
update() 方法
繼承 如果父類提供的方法,不能滿足子類的需求:
class background(gamesprite):
"""遊戲背景精靈"""
def update(self):
# 1. 呼叫父類的方法實現
super().update()
# 2. 判斷是否移出螢幕,如果移出螢幕,將影象設定到螢幕的上方
if self.rect.y >= screen_rect.height:
self.rect.y = -self.rect.height
在 __create_sprites 方法中建立 精靈 和 精靈組
在 __update_sprites 方法中,讓 精靈組 呼叫 update() 和 draw() 方法
__create_sprites 方法
def __create_sprites(self):
# 建立背景精靈和精靈組
bg1 = background("./images/background.png")
bg2 = background("./images/background.png")
bg2.rect.y = -bg2.rect.height
self.back_group = pygame.sprite.group(bg1, bg2)
__update_sprites 方法
def __update_sprites(self):
self.back_group.update()
self.back_group.draw(self.screen)
思考 —— 上一小結完成的**存在什麼樣的問題?能否簡化?
思考 —— 精靈 初始位置 的設定,應該 由主程式負責?還是 由精靈自己負責?
答案 —— 由精靈自己負責
在 plane_sprites.py 中實現 background 的 初始化方法
def __init__(self, is_alt=false):
image_name = "./images/background.png"
super().__init__(image_name)
# 判斷是否交替,如果是,將設定到螢幕頂部
if is_alt:
self.rect.y = -self.rect.height
修改 plane_main 的 __create_sprites 方法
# 建立背景精靈和精靈組
bg1 = background()
bg2 = background(true)
self.back_group = pygame.sprite.group(bg1, bg2)
飛機大戰5 遊戲背景
執行備課 觀察背景影象的顯示效果 解決辦法 建立兩張背景影象精靈 兩張影象一起向下方運動當任意背景精靈的rect.y 螢幕的高度說明已經移動到螢幕下方將移動到螢幕下方的這張影象設定到螢幕的正上方 update 方法 繼承如果父類提供的方法,不能滿足子類的需求 class background gam...
python飛機大戰筆記(7) 遊戲背景滾動顯示
背景交替滾動 遊戲啟動後,背景影象會連續不斷地向下方移動 在視覺上產生英雄的飛機不斷向上方飛行的錯覺 即 遊戲的背景不斷變化 遊戲的主角未知保持不變 在螢幕上,豎直疊放兩張背景影象 將第乙個影象一處螢幕後,將第一張影象憑藉到第二個影象的上方 當第二張影象移出螢幕後 第一張接到上方,以此迴圈。1 建立...
python小遊戲 飛機大戰(3)
二 新增 動畫 3 執行展示 三 遊戲結束介面 四 計分 五 提公升遊戲難度 六 總結 前兩節已經實現遊戲基本功能,接下來是對遊戲的完善,包括 動畫 計分 結束畫面等。這個其實是在剛開始開發就需要做的,這裡是為了方便讀者理解,將其挪到遊戲基本功能完成後再進行調整。基本思路其實很簡單,就是建立時鐘物件...