2 version
parent
17d27b058e
commit
12ca804725
12
main.py
12
main.py
|
@ -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) # Создание взрыва камня
|
||||||
|
|
Loading…
Reference in New Issue