Пишу игру по примеру, есть задание удалить пулю при выходе за правую часть экрана.
Ври выходе пули за экран она не удаляется, что соответственно не дает выпустить новую, хотя в коде вроде все прописал(смотри внизу)
def fire_bullet(ai_settings, screen, ship, bullets):
#"""Выпускает пулю, если максимум еще не достигнут."""
# Создание новой пули и включение ее в группу bullets.
if len(bullets) < ai_settings.bullets_allowed:
new_bullet = Bullet(ai_settings, screen, ship)
bullets.add(new_bullet)
# Создание новой пули и включение ее в группу bullets.
def check_events(ai_settings, screen, ship, bullets):
"""Обрабатывает нажатия клавиш и события мыши."""
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown_events(event, ai_settings, screen, ship, bullets)
elif event.type == pygame.KEYUP:
check_keyup_events(event, ship)
def update_screen(ai_settings, screen, ship, bullets):
#"""Обновляет изображения на экране и отображает новый экран."""
# При каждом проходе цикла перерисовывается экран.
screen.fill(ai_settings.bg_color)
# Все пули выводятся позади изображений корабля и пришельцев.
for bullet in bullets.sprites():
bullet.draw_bullet()
ship.blitme()
# Отображение последнего прорисованного экрана.
pygame.display.flip()
def update_bullets(bullets):
bullets.update()
# Удаление пуль, вышедших за край экрана.
for bullet in bullets.copy():
if bullet.rect.right <= 0:
bullets.remove(bullet)