按照个人的相法,对原代码进行了改进,添加功能如下:
功能1:飞机的移动多样化
原代码飞机只能左右移动,没有前后移动,增加飞机前后移动
方法:
1、在GameSprite初始化时添加一个速度值参数,用于水平速度的设定
class GameSprite(pygame.sprite.Sprite):
def __init__(self, image_name, speed1=1,speed2=1):
#继承父类方法
super().__init__()
self.image = pygame.image.load(image_name) #通过图像生成surface对象
self.rect = self.image.get_rect() #生成rect对象
self.speed1 = speed1 #设置垂直速度,如果不设置则默认为1
self.speed2 = speed2#设置水平速度,如果不设置则默认为1,主要是飞机应用
2、在Hero的定义中,初始化中添加参数调用,加上修改update,添加y方向的运动,并且添加底部防出框的代码
class Hero(GameSprite):
def __init__(self):
.......
def update(self):
# 英雄在水平方向运行
self.rect.x += self.speed2
# 英雄在垂直方向运行
self.rect.y -= self.speed1
# 控制英雄不能离开屏幕
if self.rect.x < 0:
self.rect.x = 0
elif self.rect.y < 0:
self.rect.y = 0