206530323/bullet.py

45 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding: UTF-8
# 创建子弹Bullet类
import pygame
from pygame.sprite import Sprite
class Bullet(Sprite):
"""
一个对飞船发射的子弹进行管理的类
"""
def __init__(self, ai_settings, screen, ship):
"""
在飞船所处的位置创建一个子弹对象
"""
super(Bullet, self).__init__() # 继承Sprite
self.screen = screen
# 在0 0位置上创建一个表示子弹的矩形并设置其位置
self.rect = pygame.Rect(0, 0, ai_settings.bullet_width, ai_settings.bullet_height)
self.rect.centerx = ship.rect.centerx # 将子弹的centerx设置为飞船的centerx
self.rect.top = ship.rect.top # 将子弹的top属性设置为飞船的top属性 让子弹看起来是从飞船中射出的
# 将子弹的垂直位置用小数表示,方便调节速度
self.y = float(self.rect.y)
# 获取子弹其他属性
self.bullet_color = ai_settings.bullet_color
self.bullet_speed_factor = ai_settings.bullet_speed_factor
def update(self):
"""
向上移动子弹
"""
# 更新表示子弹位置的小数值
self.y -= self.bullet_speed_factor
# 更新表示子弹的rect的位置
self.rect.y = self.y
def draw_bullet(self):
"""
在屏幕上绘制子弹
"""
pygame.draw.rect(self.screen, self.bullet_color, self.rect) # 顺序为1 2 3 2填充3出现在1屏幕上