class Bullet(pygame.sprite.Sprite):
def __init__(self, player_image:str, player_x:int, player_y:int, player_speed:int, w:int , h:int):
super().__init__()
self.image = pygame.transform.scale(pygame.image.load(player_image), (w, h))
self.rect = self.image.get_rect(center=(player_x,player_y))
self.rect.x = player_x
self.rect.y = player_y
self.speed = player_speed
self.width = w
self.height = h
self.orig = self.image
def reset(self, window):
window.blit(self.image, (self.rect.x, self.rect.y))
def move(self):
# выглядит это так:
screen_size = 626,626
# Получаем координаты мыши относительно экрана
mouse_pos = pygame.mouse.get_pos()
# Вычисляем координаты мыши относительно центра экрана
mouse_x = mouse_pos[0] - screen_size[0] // 2 + self.rect.centerx
mouse_y = mouse_pos[1] - screen_size[1] // 2 + self.rect.centery
# Вычисляем направление
angle = np.arctan2(mouse_y - self.rect.centery, mouse_x - self.rect.centerx)
dx = np.cos(angle)
dy = np.sin(angle)
self.direction = (dx, dy)
self.rect.x += self.speed * self.direction[0]
self.rect.y += self.speed * self.direction[1]
if self.rect.y <= -30: #если пулька вышла за границу экрана, то удаляем её
bullets.remove(self) #удаляем спрайт из списка