python 游戏开发项目
一般项目开发需要两个文件:一个写主程序,另一个专门用来定义全局变量、函数、类
本文中使用 plane_main.py
写主程序, Plane_sprites.py
定义全局变量、函数、类
首先开发Plane_sprites.py
模块
导入需要的模块
import random
import pygame
定义常量
常量全大写
# 屏幕的大小常量
SCREEN_RECT = pygame.Rect(0, 0, 480, 852)
# 帧率
FRAME_PER_SECOND = 60
# 敌机的定时器常量
CREATE_ENEMY_EVENT = pygame.USEREVENT
# 发射子弹的定时器常量
CREATE_HERO_EVENT = pygame.USEREVENT+1
用 pygame
内置的pygame.sprite.Sprite
类创建大类GameSprite
这是从内置的类里继承来的
首先要调用父类初始化方法!!!
- 初始化3个属性:
- 图片来源
- 图片大小
- 图片速度
- 定义更新方法:
- 沿y轴向下移动
class GameSprite(pygame.sprite.Sprite):
"""
飞机大战游戏精灵
"""
def __init__(self, image_name, speed=1):
# 调用父类的初始化方法
super().__init__()
# 定义对象的属性
self.image = pygame.image.load(image_name)
self.rect = self.image.get_rect()
self.speed = speed
def update(self):
# 在屏幕上下移动
self.rect.y += self.speed
创建需要的小类
从大类中继承来的
背景类
两张图片滚动显示
- 初始化
- 调用父类(的三个属性)
- 增加交替属性
- 定义更新方法
- 调用父类向下移动
- 移出屏幕就放到上面去
class Background(GameSprite):
"""游戏背景精灵"""
def __init__(self, is_alt=False):
# 1. 调用父类方法实现精灵创建
super().__init__("./images/background.png")
# 2. 判断是否是交替图像