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

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
и ещё скажите где это писать(между какими строчками).

Показать ответ
Ответ:
dibtdi
dibtdi
30.05.2023 16:49

Чтобы монеты пропадали через некоторое время, вам понадобится добавить соответствующую логику в код. Вот измененный код с комментариями, где нужно внести изменения:

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(). Это позволит проверять и создавать новые монеты каждый кадр игры.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота