import pygame as pg from .sprite import Sprite SPEED = 6 COLOR = (255,0,0) SIZE = 12 LIFETIME = 90 class Torpedo(Sprite): COOLTIME = 10 def __init__(self, scr_rect, map_pos, direction, velocity): super().__init__((SIZE,)*2) self.rect.x = scr_rect.centerx - self.rect.width / 2 self.rect.y = scr_rect.centery - self.rect.height / 2 self.image.fill(self.image.get_colorkey()) pg.draw.circle(self.image, COLOR, self.image.get_rect().center, self.image.get_rect().width/2) self.map_pos = pg.math.Vector2(map_pos) self.velocity = pg.math.Vector2(direction) * SPEED + velocity self.lifetime = LIFETIME def update(self, map_rect): self.map_pos += self.velocity self.map_pos.x %= map_rect.w self.map_pos.y %= map_rect.h self.rect.x = (self.map_pos.x - self.rect.w/2 - map_rect.x) % map_rect.w self.rect.y = (self.map_pos.y - self.rect.w/2 - map_rect.y) % map_rect.h self.lifetime -= 1 if self.lifetime == 0: self.kill()