def __init__(self, ai_settings, screen, ship):
"""??????????"""
#super(Bullet, self).__init__() ???2.7?? ?? 3.0?? ??
super().__init__()
self.screen = screen
#class Foo(): ?????????
# def __init__(self, frob, frotz)
# self.frobnicate = frob
# self.frotz = frotz
#class Bar(Foo):
# def __init__(self, frob, frizzle)
# super().__init__(frob, 34)
# self.frazzle = frizzle
# ??0.0???????????????????.
self.rect = pygame.Rect(0, 0, ai_settings.bullet_width,
ai_settings.bullet_height)
self.rect.centerx = ship.rect.centerx
self.rect.top = ship.rect.top
# ???????????
self.y = float(self.rect.y)
self.color = ai_settings.bullet_color
self.speed_factor = ai_settings.bullet_speed_factor
#???? ????? ??? pygame.rect() ??????????
#?? ?????????? X Y ?? ?? ?? ????? ????? ?settings ????
#rect.centerx ??????????
#rect.top ????????????
python类Rect()的实例源码
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)
#?draw.recct() ???self.color????????rect ???????
def rect(self):
return Rect(self.x, self.y, Tile.width, Tile.height)
def render(self):
pygame.draw.rect(Renderer.SCREEN, self.color, self.rect, 0)
def rect(self):
return Rect(self.x, self.y, self.width, self.height)
# Initialises the Tileset and adds columns and rows
def is_at(self, x, y):
return self.rect.collidepoint(x, y)
# Specifies if the Tileset is at the current mouse position
def render(self):
for col in range(self.cols):
for row in range(self.rows):
self.tiles[col][row].render()
if self.show_grid:
pygame.draw.rect(Renderer.SCREEN, Renderer.COLOR_BLACK, self.tiles[col][row].rect, 1)
def render(self):
pygame.draw.rect(Renderer.SCREEN, self.color, self.rect, 0)
def rect(self):
return Rect(self.x, self.y, self.size, self.size)