2 version

main
User 2024-03-03 16:03:40 +02:00
parent 17d27b058e
commit 12ca804725
1 changed files with 6 additions and 6 deletions

12
main.py
View File

@ -68,7 +68,7 @@ class Explosion(pygame.sprite.Sprite):
self.rect = self.image.get_rect() self.rect = self.image.get_rect()
self.rect.center = center self.rect.center = center
# Добавление класса для анимации удара о каменную стену # Добавление класса для анимации удара о каменную стену
class StoneExplosion(pygame.sprite.Sprite): class StoneExplosion(pygame.sprite.Sprite):
def __init__(self, x, y): def __init__(self, x, y):
super().__init__() super().__init__()
@ -159,7 +159,7 @@ class Tank(pygame.sprite.Sprite):
bullets.add(bullet) bullets.add(bullet)
self.last_fire_time = current_time # Обновление времени последнего выстрела self.last_fire_time = current_time # Обновление времени последнего выстрела
# Проверяем столкновение пули с каменными стенами # Проверяем столкновение пули с каменными стенами
if pygame.sprite.spritecollideany(bullet, walls): if pygame.sprite.spritecollideany(bullet, walls):
stoneexplosion_sound.play() # Воспроизведение звука столкновения с каменной стеной stoneexplosion_sound.play() # Воспроизведение звука столкновения с каменной стеной
explosion = StoneExplosion(bullet.rect.centerx, bullet.rect.centery) # Создание анимации удара о стену explosion = StoneExplosion(bullet.rect.centerx, bullet.rect.centery) # Создание анимации удара о стену
@ -181,7 +181,7 @@ class PlayerBullet(pygame.sprite.Sprite):
if not screen.get_rect().colliderect(self.rect): if not screen.get_rect().colliderect(self.rect):
self.kill() self.kill()
if pygame.sprite.spritecollideany(self, walls): if pygame.sprite.spritecollideany(self, walls):
self.kill() # Удаляем снаряд, если он столкнулся со стеной self.kill() # Удаляем снаряд, если он столкнулся со стеной
# Определение класса снаряда бота # Определение класса снаряда бота
@ -199,7 +199,7 @@ class BotBullet(pygame.sprite.Sprite):
if not screen.get_rect().colliderect(self.rect): if not screen.get_rect().colliderect(self.rect):
self.kill() self.kill()
if pygame.sprite.spritecollideany(self, walls): if pygame.sprite.spritecollideany(self, walls):
self.kill() # Удаляем снаряд, если он столкнулся со стеной self.kill() # Удаляем снаряд, если он столкнулся со стеной
# Определение класса для бота # Определение класса для бота
@ -391,7 +391,7 @@ while running:
# Обновление всех спрайтов # Обновление всех спрайтов
all_sprites.update() all_sprites.update()
# Проверка столкновений пуль с танками # Проверка столкновений пуль с танками
for bullet in bullets: for bullet in bullets:
if isinstance(bullet, PlayerBullet): if isinstance(bullet, PlayerBullet):
tank_hit = pygame.sprite.spritecollideany(bullet, tanks, pygame.sprite.collide_mask) tank_hit = pygame.sprite.spritecollideany(bullet, tanks, pygame.sprite.collide_mask)
@ -403,7 +403,7 @@ while running:
tank_hit.kill() # Удаляем бота tank_hit.kill() # Удаляем бота
respawn_bot() # Создаем нового бота respawn_bot() # Создаем нового бота
elif isinstance(bullet, BotBullet): elif isinstance(bullet, BotBullet):
# Проверяем столкновение пули бота с стенами # Проверяем столкновение пули бота с стенами
if pygame.sprite.spritecollideany(bullet, walls): if pygame.sprite.spritecollideany(bullet, walls):
stoneexplosion_sound.play() # Воспроизведение звука взрыва камня stoneexplosion_sound.play() # Воспроизведение звука взрыва камня
explosion = Explosion(bullet.rect.centerx, bullet.rect.centery) # Создание взрыва камня explosion = Explosion(bullet.rect.centerx, bullet.rect.centery) # Создание взрыва камня