From 5c1fbf80bea05e5c47dbd5e97770210e81276a15 Mon Sep 17 00:00:00 2001 From: 206530407 <1294510428@qq.com> Date: Tue, 22 Jun 2021 11:38:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20'bullet'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bullet | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 bullet diff --git a/bullet b/bullet new file mode 100644 index 0000000..25c4685 --- /dev/null +++ b/bullet @@ -0,0 +1,32 @@ +import pygame +from pygame.sprite import Sprite + + +class Bullet(Sprite): + """一个对飞船发射的子弹进行管理的类""" + + def __init__(self, ai_settings, screen, ship): + """在飞船所处的位置创建一个子弹对象""" + super(Bullet, self).__init__() + self.screen = screen + + # 在 (0,0) 处创建一个子弹的矩形,再设置正确的位置 + self.rect = pygame.Rect(0, 0, ai_settings.bullet_width, ai_settings.bullet_height) #调用Rect类创建子弹矩形 + self.rect.centerx = ship.rect.centerx #让子弹矩形的centerx属性等于飞船矩形的centerx属性 + self.rect.top = ship.rect.top #让子弹矩形的top属性等于飞船矩形的top属性 + + # 存储用小数表示的子弹位置 + self.y = float(self.rect.y) + self.color = ai_settings.bullet_color + self.speed_factor = ai_settings.bullet_speed_factor + + def update(self): + """向上移动子弹""" + # 更新表示子弹位置的小数值 + self.y -= self.speed_factor + # 更新表示子弹的rect的位置 + self.rect.y = self.y + + def draw_bullet(self): + """在屏幕上绘制子弹""" + pygame.draw.rect(self.screen, self.color, self.rect) #调用pygame.draw.rect()绘制子弹矩形到屏幕