前言
到目前为止,我们已经完成了游戏窗口的创建,飞船的加载,飞船的移动,发射子弹等功能。很高兴的说一声,基础的游戏功能已经完成一半了,再过几天我们就可以尝试驾驶 飞船击毁外星人了。当然,计分,游戏次数,背景音乐,开始启动等按钮的功能需要我们慢慢添加,这些功能不影响游戏的使用,影响的是体验,所以作为后续的迭代,这个功能大家可以看我怎么加,也可以按自己的想法去添加。
废话不多说,开始今天的学习。
加载外星人
作为游戏的重要组成元素,外星人,今天我们正式进行它的加载模块。
在最开始分析项目的时候,我们已经对外星人模块有了基础的了解,外星人的加载其实和飞船一样是图片接矩形渲染成的,所以基础模块和飞船模块是有点相似的。
我们就已经编写好了外星人模块的基础功能代码,今天继续根据功能进行填充编写的步骤。
在这里先展示一下外星人模块的基础代码:
import pygame
class Alien:
"""外星人类"""
def __init__(self, setting, screen):
"""初始化外星人并设置其初始位置"""
super(Alien, self).__init__()
self.screen = screen
self.setting = setting
# 加载图片并外接矩形
self.image = pygame.transform.scale(
pygame.image.load('F:/python_project/AlienTrespass/src/main/xq/images/alien.bmp'), (50, 50))
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
def move(self):
"""移动外星人"""
pass
外星人组
外星人的数量不像飞船,同一时间窗口中只有一个。外星人是可以成堆出现的,所以外星人模块要需要继承Sprite,方便后续外星人组的操作。
修改外星人模块如下: