@Python编程从入门到实践 Python项目练习
一、安装Python包Pygame
通过pip安装包工具安装
python3 -m pip --version #查看是否安装pip
确定安装pip后,直接安装Pygame
pip3 install pygame
macos 10.14 mojave用户由于系统与pygame包的兼容问题,后面import该包后会有使用上的问题,降级mac系统可以解决但是比较麻烦。建议直接下载Pycharm IDE,搭配Anaconda配置虚拟环境,亦可解决。
二、创建Pygame窗口
建立alien_invasion.py,用于初始游戏窗口,开始主循环。
# alien_invasion.py
import sys
import pygame
from pygame.sprite import Group
from settings import Settings
from ship import Ship
from passenger import Passenger
from game_stats import GameStats
import game_functions as gf
def run_game():
# 初始化pygame、设置和屏幕对象
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width,
ai_settings.screen_height))
pygame.display.set_caption("Alien Invasion")
# 创建一艘飞船
ship = Ship(ai_settings, screen)
# 创建一个用于存储子弹的编组
bullet_group = Group()
# 创建一个乘客群
passenger_group = Group()
gf.create_fleet(ai_settings, screen, ship, passenger_group)
# 创建一个用于存储游戏统计信息的实例
stats = GameStats(ai_settings)
# 开始游戏主循环
while True:
# 监视键盘和鼠标事件
gf.check_events(ai_settings, screen, ship, bullet_group)
if stats.game_active:
ship.update()
gf.update_bullet_group(ai_settings, screen, ship, passenger_group, bullet_group)
gf.update_passenger_group(ai_settings, stats, screen, ship, passenger_group, bullet_group)
# 每次循环重绘窗口并更新屏幕
gf.update_screen(ai_settings, screen, ship, passenger_group, bullet_group)
run_game()
三、创建setting类
建立settings.py,用于将所有设置存储在同一地方,这样,我们可以通过传递一个设置对象完成众多的设置。
# settings.py
class Settings(object):
"""设置所有设置的类"""
def __init__(self):
"""初始化游戏的设置"""
# 屏幕设置
self.screen_width = 600
self.screen_height = 400
self.bg_color = (255, 255, 255)
# 飞船设置
self.ship_speed_factor = 1.5
self.ship_limit = 3
# 子弹设置
self.bullet_speed_factor = 3
self.bullet_width = 3
self.bullet_height = 15
self.bullet_color = 60, 60, 60
self.bullet_group_allowed = 3
# 乘客设置
self.passenger_speed_factor = 1
self.fleet_drop_speed = 7
# fleet_direction为1表示向右移动,为-1表示向左移动
self.fleet_direction = 1