Чтобы монеты пропадали через некоторое время, вам понадобится добавить соответствующую логику в код. Вот измененный код с комментариями, где нужно внести изменения:
import pygame
import random
import time
pygame.init()
# Остальной код
# Добавляем переменную для хранения времени последнего создания монеты
last_coin_spawn_time = time.time()
while running:
clock.tick(30)
# Остальной код
if random.randint(0, 100) < 3 and time.time() - last_coin_spawn_time > 2:
# Генерируем новую монету только если более 2 секунд с момента последнего создания
value = random.choice([1, 2, 3])
x = random.randint(50, WIDTH - 50)
y = random.randint(-50, -10)
coin = Coin(value, x, y)
all_coins.add(coin)
# Обновляем время последнего создания монеты
last_coin_spawn_time = time.time()
# Остальной код
pygame.quit()
Объяснение:
В этом коде добавлена переменная last_coin_spawn_time, которая хранит время последнего создания монеты. При каждой проверке на создание новой монеты, мы сравниваем разницу между текущим временем и временем последнего создания. Если больше 2 секунд (или другое значение, которое вам нужно), то создается новая монета.
Вы можете вставить этот блок кода после строки if event.type == pygame.MOUSEBUTTONDOWN: и перед строкой all_coins.update(). Это позволит проверять и создавать новые монеты каждый кадр игры.