Update Gaame with menu

52
Artjoms Marians Ņečajevs 2024-02-26 10:28:25 +00:00
parent 0fb5eb5666
commit b4a9fca53f
1 changed files with 22 additions and 21 deletions

View File

@ -40,12 +40,18 @@ class Tank(pygame.sprite.Sprite):
self.rect = self.image.get_rect(center=(x, y))
self.angle = -90 # Поворот на 90 градусов против часовой стрелки
self.last_fire_time = pygame.time.get_ticks() # Время последнего выстрела
self.turn_threshold = 50 # Пороговое значение расстояния для разворота
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_w]:
self.move_forward()
mouse_pos = pygame.mouse.get_pos()
# Проверяем расстояние до курсора
distance_to_cursor = math.hypot(mouse_pos[0] - self.rect.centerx, mouse_pos[1] - self.rect.centery)
if distance_to_cursor > self.turn_threshold:
# Если расстояние больше порогового значения, разворачиваем объект
self.angle = math.degrees(math.atan2(mouse_pos[1] - self.rect.centery, mouse_pos[0] - self.rect.centerx)) + 90
self.image = pygame.transform.rotate(self.original_image, -self.angle)
self.rect = self.image.get_rect(center=self.rect.center)
@ -86,7 +92,8 @@ class PlayerBullet(pygame.sprite.Sprite):
if not screen.get_rect().colliderect(self.rect):
self.kill()
if pygame.sprite.spritecollideany(self, walls):
self.kill() # Удаляем снаряд, если он столкнулся со стеной
self.kill()
# Определение класса снаряда бота
class BotBullet(pygame.sprite.Sprite):
@ -103,8 +110,10 @@ class BotBullet(pygame.sprite.Sprite):
if not screen.get_rect().colliderect(self.rect):
self.kill()
if pygame.sprite.spritecollideany(self, walls):
self.kill() # Удаляем снаряд, если он столкнулся со стеной
# Определение класса для бота
class Bot(pygame.sprite.Sprite):
def __init__(self, x, y):
@ -158,7 +167,6 @@ class Bot(pygame.sprite.Sprite):
# self.last_fire_time = current_time
class Wall(pygame.sprite.Sprite):
def __init__(self, x, y, image):
super().__init__()
@ -211,9 +219,6 @@ for pos in wall_stenki_positions:
all_sprites.add(wall_stenki)
walls.add(wall_stenki)
# Создание групп спрайтов
all_sprites = pygame.sprite.Group()
tanks = pygame.sprite.Group()
@ -229,7 +234,6 @@ all_sprites.add(bot)
tanks.add(bot)
def draw_menu():
screen.blit(menu_background, (0, 0))
# Рисуем текст меню
@ -261,13 +265,10 @@ while menu_active:
else:
menu_active = False # Нажата кнопка "Старт"
# Основной игровой цикл
clock = pygame.time.Clock()
running = True
while running:
player_bullets = []
bot_bullets = []