Top.Mail.Ru
Ответы

Питон нужна помощь

1. Создай игровую сцену с размерами 500х500. Задай ей фоновый цвет с помощью палитры RGB.

2. Создай игровой таймер (pygame.time.Clock()). Затем создай заготовку игрового цикла и настрой комфортную частоту смены кадров (например, 40).

3. Создай класс Area («цветной прямоугольник»):
— поля класса: прямоугольник и фоновый цвет;
— методы класса: установить цвет, заполнить цветом, задать обводку цветом.

4. Создай класс Label как наследника от Area («прямоугольник с надписью»):
— методы класса: установить текст, отрисовать прямоугольник с надписью.

5. Создай и отобрази набор из 4 карточек. Для каждой карточки нужно создать объект Label и задать текст и обводку.



Как здесь создать карточки?

По дате
По рейтингу
Аватар пользователя
Мастер

Ислам, привет)

Держи код:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
 import pygame 
import sys 
 
pygame.init() 
 
width, height = 500, 500 
screen = pygame.display.set_mode((width, height)) 
background_color = (150, 150, 255) 
 
# Игровой таймер 
clock = pygame.time.Clock() 
fps = 40 
 
class Area: 
    def __init__(self, x, y, width, height, color): 
        self.rect = pygame.Rect(x, y, width, height) 
        self.color = color 
 
    def set_color(self, color): 
        self.color = color 
 
    def fill(self): 
        pygame.draw.rect(screen, self.color, self.rect) 
 
    def draw_border(self, border_color, border_width=5): 
        pygame.draw.rect(screen, border_color, self.rect, border_width) 
 
class Label(Area): 
    def __init__(self, x, y, width, height, color, text): 
        super().__init__(x, y, width, height, color) 
        self.text = text 
        self.font = pygame.font.Font(None, 24) 
 
    def set_text(self, text): 
        self.text = text 
 
    def draw(self): 
        self.fill() 
        text_surface = self.font.render(self.text, True, (0, 0, 0)) 
        text_rect = text_surface.get_rect(center=self.rect.center) 
        screen.blit(text_surface, text_rect) 
 
card_width, card_height = 100, 50 
vertical_spacing = 20 
horizontal_spacing = 20 
start_x = (width - 2 * card_width - horizontal_spacing) // 2 
start_y = (height - 2 * (card_height + vertical_spacing)) // 2 
 
cards = [ 
    Label(start_x, start_y, card_width, card_height, (255, 0, 0), "Карточка 1"), 
    Label(start_x + card_width + horizontal_spacing, start_y, card_width, card_height, (0, 255, 0), "Карточка 2"), 
    Label(start_x, start_y + card_height + vertical_spacing, card_width, card_height, (0, 0, 255), "Карточка 3"), 
    Label(start_x + card_width + horizontal_spacing, start_y + card_height + vertical_spacing, card_width, card_height, (255, 255, 0), "Карточка 4") 
] 
 
running = True 
while running: 
    for event in pygame.event.get(): 
        if event.type == pygame.QUIT: 
            running = False 
 
    screen.fill(background_color) 
     
    for card in cards: 
        card.draw() 
        card.draw_border((0, 0, 0)) 
 
    pygame.display.flip() 
    clock.tick(fps) 
 
pygame.quit() 
sys.exit() 
 

На выходе ты получишь такой результат)

Аватар пользователя
Ученик

ошибка в 40ой строке