此项目在学习Python的过程中,对照着书本所写,已成功运行。
所用的编辑器为Spyder,安装插件Pygame. 外星人及飞船图片下载链接
以下为小部分代码,完整版已上传资源。
主程序:alien_invasion.py
import sys
import pygame
from pygame.sprite import Group
from settings import Settings
from game_stats import GameStats
from scoreboard import Scoreboard
from button import Button
from ship import Ship
from alien import Alien
import game_functions as gf
def run_game():
# 初始化游戏并创建一个屏幕对象
pygame.init()
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中调用函数鼠标键盘,
gf.check_events(ai_settings,screen,stats,sb,play_button,ship,aliens,bullets)
# 更新飞船位置
if stats.game_active:
ship.update()
# 更新屏幕
gf.update_bullets(ai_settings,screen,stats,sb,ship,aliens,bullets)
gf.update_aliens(ai_settings,screen,stats,sb,ship,aliens,bullets)
gf.update_screen(ai_settings,screen,stats,sb,ship,aliens,bullets,play_button)
run_game()
储存大量游戏运行的函数 :game_functions.py
import sys
from time import sleep
import pygame
from bullet import Bullet
from alien import Alien
def check_keydown_events(event,ai_settings,screen,ship,bul