在游戲《外星人入侵》中,玩家控制着一艘最初出現在屏幕底部中央的飛船。玩家可以使用箭頭鍵左右移動飛船,還可使用空格鍵進行射擊。游戲開始時,一群外星人出現在天空中,他們在屏幕中向下移動。玩家的任務是射殺這些外星人。玩家將所有外星人都消滅干凈后,將出現一群新的外星人,他們移動的速度更快。只要有外星人撞到了玩家的飛船或到達了屏幕底部,玩家就損失一艘飛船。玩家損失三艘飛船后,游戲結束。
游戲截圖:
alien_invasion.py
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import
sys import pygame from settings import Settings from ship import Ship import game_functions as gf from pygame.sprite import Group from alien import Alien from scoreboard import Scoreboard from game_stats import GameStats from button import Button def run_game(): # 初始化游戲並創建一個屏幕對象 pygame.init() # screen = pygame.display.set_mode((1200, 800)) ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption( "Alien Invasion" ) # 新建Play按鈕 play_button = Button(ai_settings, screen, "Play" ) # 創建一個用於存儲游戲統計信息的實例,並創建記分牌 stats = GameStats(ai_settings) sb = Scoreboard(ai_settings, screen, stats) # 創建一艘飛船 ship = Ship(ai_settings, screen) # 創建一個用於存儲子彈和外星人的編組 bullets = Group() aliens = Group() # 創建外星人群 gf.create_fleet(ai_settings, screen, ship, aliens) # 開始游戲的主循環 while True : # 監視鍵盤和鼠標事件 gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: # 移動飛船 gf.update_ship(ship) # 更新子彈 gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) # 更新外星人 gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens, bullets) # 更新屏幕 gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) |
參考下載:地址