Предмет: Информатика, автор: danasajdeckij

Python зробити інвентар в якому можна додавати і видаляти речі

Ответы

Автор ответа: nullptr53
0

Ответ:

import pygame

import sys

import random

pygame.init()

# Определение цветов

BLACK = (0, 0, 0)

WHITE = (255, 255, 255)

GRAY = (200, 200, 200)

# Инициализация окна

WIDTH, HEIGHT = 800, 600

CELL_SIZE = 50

screen = pygame.display.set_mode((WIDTH, HEIGHT))

pygame.display.set_caption("Инвентарь")

# Инициализация инвентаря (8x8 сетка)

inventory_rows = 8

inventory_cols = 8

inventory = [["" for i in range(inventory_cols)] for j in range(inventory_rows)]

# Генерация случайных квадратиков

squares = [{"color": (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),

"rect": pygame.Rect(random.randint(0, WIDTH - CELL_SIZE), random.randint(CELL_SIZE, HEIGHT - CELL_SIZE), CELL_SIZE, CELL_SIZE),

"dragging": False} for _ in range(5)] # Создаем 5 случайных квадратиков

# Основной цикл игры

while True:

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

sys.exit()

elif event.type == pygame.KEYDOWN:

if event.key == pygame.K_a:

# Добавление предмета в первую пустую ячейку инвентаря

for i in range(inventory_rows):

for j in range(inventory_cols):

if inventory[i][j] == "":

inventory[i][j] = "Предмет"

break

elif event.type == pygame.MOUSEBUTTONDOWN:

if event.button == 1: # Левая кнопка мыши

for square in squares:

if square["rect"].collidepoint(event.pos):

square["dragging"] = True

elif event.type == pygame.MOUSEBUTTONUP:

if event.button == 1:

for square in squares:

if square["dragging"]:

# Проверяем, находится ли квадратик над инвентарем

for i in range(inventory_rows):

for j in range(inventory_cols):

cell_rect = pygame.Rect(j * CELL_SIZE, i * CELL_SIZE + CELL_SIZE, CELL_SIZE, CELL_SIZE)

if cell_rect.collidepoint(square["rect"].center):

inventory[i][j] = "Предмет"

break

square["dragging"] = False

for square in squares:

if square["dragging"]:

square["rect"].center = pygame.mouse.get_pos()

# Отображение инвентаря и квадратиков

screen.fill(WHITE)

pygame.draw.rect(screen, BLACK, (0, 0, WIDTH, CELL_SIZE)) # Заголовок "Инвентарь"

font = pygame.font.Font(None, 36)

text = font.render("Инвентарь: {}".format(sum(row.count("Предмет") for row in inventory)), True, WHITE)

screen.blit(text, (10, 5))

for i in range(inventory_rows):

for j in range(inventory_cols):

color = WHITE if (i + j) % 2 == 0 else GRAY

pygame.draw.rect(screen, color, (j * CELL_SIZE, i * CELL_SIZE + CELL_SIZE, CELL_SIZE, CELL_SIZE))

if inventory[i][j] != "":

font = pygame.font.Font(None, 20)

text = font.render(inventory[i][j], True, BLACK)

screen.blit(text, (j * CELL_SIZE + 10, i * CELL_SIZE + CELL_SIZE + 10))

for square in squares:

pygame.draw.rect(screen, square["color"], square["rect"])

pygame.display.flip()

Приложения:
Похожие вопросы
Предмет: Українська мова, автор: kurdishalice438
Предмет: Математика, автор: babul80