From d0d7a50df4a07a5ac4662c687378e1b625d1abba Mon Sep 17 00:00:00 2001 From: 206530410 <2752975388@qq.com> Date: Tue, 22 Jun 2021 12:06:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20'ship'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ship | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ship diff --git a/ship b/ship new file mode 100644 index 0000000..a3b8af1 --- /dev/null +++ b/ship @@ -0,0 +1,47 @@ +import pygame +from pygame.sprite import Sprite #导入pygame模块下sprite子模块中的Sprite类 + + +class Ship(Sprite): + + def __init__(self, ai_settings, screen): + """初始化飞船并设置其初始位置""" + super(Ship, self).__init__() #兼容python2.7,Ship类继承Sprite类属性 + + self.screen = screen + self.ai_settings = ai_settings + + # 加载飞船图形并获取其外接矩形 + self.image = pygame.image.load('images/ship.bmp') #加载图片,创建图片对象 + self.rect = self.image.get_rect() #调用get_rect()方法,获取image的属性rect + self.screen_rect = screen.get_rect() #调用get_rect()方法,将表示屏幕的矩形存储在self.screen_rect中 + + # 将每艘新飞船放在屏幕底部中央 + self.rect.centerx = self.screen_rect.centerx #让飞船矩形centerx属性(中央x坐标)等于屏幕矩形centerx属性,x方向上居中 + self.rect.bottom = self.screen_rect.bottom #让飞船矩形bottom属性等于屏幕矩形bottom属性 + + # 在飞船的属性center中存储小数值 + self.center = float(self.rect.centerx) + + # 移动标志 + self.moving_right = False + self.moving_left = False + + def update(self): + """根据移动标志调整飞船的位置""" + # 更新飞船的center值,而不是rect + if self.moving_right and self.rect.right < self.screen_rect.right: #当向右移动且飞船矩形right属性小于屏幕矩形right属性时 + self.center += self.ai_settings.ship_speed_factor + if self.moving_left and self.rect.left > 0: #当向左移动且飞船矩形left属性大于0时 + self.center -= self.ai_settings.ship_speed_factor + + # 根据self.center更新rect对象 + self.rect.centerx = self.center #如果是self.rect.centery = self.center,则飞船会上下移动,而不是左右移动 + + def blitme(self): + """在指定位置绘制飞船""" + self.screen.blit(self.image, self.rect) #调用blit()方法将图片对象添加到窗口对象中 + + def center_ship(self): + """让飞船在屏幕上居中""" + self.center = self.screen_rect.centerx #让飞船矩形center属性等于屏幕矩形centerx属性