您好,登錄后才能下訂單哦!
本文實例講述了python飛機大戰pygame游戲之敵機出場實現方法。分享給大家供大家參考,具體如下:
使用 定時器 添加敵機
運行 備課代碼,觀察 敵機的 出現規律:
set_timer(eventid, milliseconds) -> None
定時器事件的監聽
pygame 的 定時器 使用套路非常固定:
1) 定義事件
# 敵機的定時器事件常量 CREATE_ENEMY_EVENT = pygame.USEREVENT
在 PlaneGame 的 初始化方法 中 創建用戶事件
# 4. 設置定時器事件 - 每秒創建一架敵機 pygame.time.set_timer(CREATE_ENEMY_EVENT, 1000)
2) 監聽定時器事件
def __event_handler(self): for event in pygame.event.get(): # 判斷是否退出游戲 if event.type == pygame.QUIT: PlaneGame.__game_over() elif event.type == CREATE_ENEMY_EVENT: print("敵機出場...")
class Enemy(GameSprite): """敵機精靈""" def __init__(self): # 1. 調用父類方法,創建敵機精靈,并且指定敵機的圖像 super().__init__("./images/enemy1.png") # 2. 設置敵機的隨機初始速度 # 3. 設置敵機的隨機初始位置 def update(self): # 1. 調用父類方法,讓敵機在垂直方向運動 super().update() # 2. 判斷是否飛出屏幕,如果是,需要將敵機從精靈組刪除 if self.rect.y >= SCREEN_RECT.height: print("敵機飛出屏幕...")
演練步驟
# 敵機組 self.enemy_group = pygame.sprite.Group()
修改 plane_main 的 __update_sprites 方法
self.enemy_group.update() self.enemy_group.draw(self.screen)
定時出現敵機
elif event.type == CREATE_ENEMY_EVENT: self.enemy_group.add(Enemy())
1. 官方標準模塊導入 2. 第三方模塊導入 3. 應用程序模塊導入
修改 plane_sprites.py 增加 random 的導入
import random
def __init__(self): # 1. 調用父類方法,創建敵機精靈,并且指定敵機的圖像 super().__init__("./images/enemy1.png") # 2. 設置敵機的隨機初始速度 1 ~ 3 self.speed = random.randint(1, 3) # 3. 設置敵機的隨機初始位置 self.rect.bottom = 0 max_x = SCREEN_RECT.width - self.rect.width self.rect.x = random.randint(0, max_x)
檢測敵機被銷毀
def __del__(self): print("敵機掛了 %s" % self.rect)
代碼實現
判斷敵機是否飛出屏幕,如果是,調用 kill() 方法從所有組中刪除
def update(self): super().update() # 判斷敵機是否移出屏幕 if self.rect.y >= SCREEN_RECT.height: # 將精靈從所有組中刪除 self.kill()
更多關于Python相關內容可查看本站專題:《Python游戲開發技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。