
Вопрос задан 07.06.2023 в 18:11.
Предмет Информатика.
Спрашивает Петренко Катя.
Помогите Python Как сделать так ,чтобы монеты через время пропадали? код: import pygame import
random pygame.init() WIDTH = 800 HEIGHT = 600 WHITE = (255, 255, 255) BLACK = (0, 0, 0) screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Собери монеты") coin_images = { 1: pygame.image.load("coin1.png"), 2: pygame.image.load("coin2.png"), 3: pygame.image.load("coin3.png") } class Coin(pygame.sprite.Sprite): def __init__(self, value, x, y): pygame.sprite.Sprite.__init__(self) self.value = value self.image = coin_images[value] self.rect = self.image.get_rect() self.rect.center = (x, y) def update(self): self.rect.y += 5 all_coins = pygame.sprite.Group () score = 0 font = pygame.font.Font(None, 36) def show_score(): text = font.render("Счет: " + str(score), True, BLACK) screen.blit(text, (10, 10)) running = True clock = pygame.time.Clock() while running: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type == pygame.MOUSEBUTTONDOWN: pos = pygame.mouse.get_pos() clicked_coins = [c for c in all_coins if c.rect.collidepoint(pos)] for coin in clicked_coins: score += coin.value coin.kill() if random.randint(0, 100) < 3: 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) all_coins.update() screen.fill(WHITE) all_coins.draw(screen) show_score() pygame.display.flip() pygame.quit() там должно быть что-то с time.slip и com_wat и ещё скажите где это писать(между какими строчками).

Ответы на вопрос

Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Чтобы монеты пропадали через определенное время, вам понадобится добавить таймер для каждой монеты и проверять, истекло ли время ее существования. Вот измененный код с добавленной логикой времени:
pythonimport pygame
import random
import time
pygame.init()
WIDTH = 800
HEIGHT = 600
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Собери монеты")
coin_images = {
1: pygame.image.load("coin1.png"),
2: pygame.image.load("coin2.png"),
3: pygame.image.load("coin3.png")
}
class Coin(pygame.sprite.Sprite):
def __init__(self, value, x, y):
pygame.sprite.Sprite.__init__(self)
self.value = value
self.image = coin_images[value]
self.rect = self.image.get_rect()
self.rect.center = (x, y)
self.creation_time = time.time() # Запоминаем время создания монеты
def update(self):
self.rect.y += 5
if time.time() - self.creation_time >= 5: # Проверяем, прошло ли 5 секунд с момента создания монеты
self.kill()
all_coins = pygame.sprite.Group()
score = 0
font = pygame.font.Font(None, 36)
def show_score():
text = font.render("Счет: " + str(score), True, BLACK)
screen.blit(text, (10, 10))
running = True
clock = pygame.time.Clock()
while running:
clock.tick(30)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
pos = pygame.mouse.get_pos()
clicked_coins = [c for c in all_coins if c.rect.collidepoint(pos)]
for coin in clicked_coins:
score += coin.value
coin.kill()
if random.randint(0, 100) < 3:
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)
all_coins.update()
screen.fill(WHITE)
all_coins.draw(screen)
show_score()
pygame.display.flip()
pygame.quit()
В этом коде каждая монета запоминает время своего создания при инициализации с помощью self.creation_time = time.time()
. Затем в методе update()
проверяется, прошло ли 5 секунд с момента создания монеты с помощью if time.time() - self.creation_time >= 5
, и если условие выполняется, монета удаляется с помощью self.kill()
.
Таким образом, монеты будут пропадать через 5 секунд после создания. Вы можете изменить значение 5 на любое другое, если вам нужно другое время существования монеты.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili