Решить вопрос в питоне используя модуль pygame и time
Создайте анимацию пульсирующего квадрата: Параметры окна: Ширина: 400px Высота: 400px Частота смены кадров: 2 Время работы: до закрытия окна Параметры большого квадрата: Начало: [100, 100] Сторона: 200 px Параметры маленького квадрата: Начало: [150, 150] Сторона: 100 px
Вот пример кода на Python с использованием модуля Pygame, который создает анимацию пульсирующего квадрата в окне размером 400x400 пикселей. Большой квадрат будет менять свой размер, а маленький квадрат останется фиксированным.
import pygame
import time
# Инициализация Pygame
pygame.init()
# Параметры окна
width, height = 400, 400
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Пульсирующий квадрат")
# Цвета
color_large_square = (0, 128, 255) # Синий цвет
color_small_square = (255, 0, 0) # Красный цвет
# Параметры квадратов
large_square_start = [100, 100]
large_square_size = 200
small_square_start = [150, 150]
small_square_size = 100
# Частота смены кадров
clock = pygame.time.Clock()
fps = 2 # 2 кадра в секунду
# Основной цикл
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Отрисовка фона
screen.fill((255, 255, 255)) # Белый фон
# Пульсация большого квадрата
current_time = time.time()
pulse_size = int(50 * (1 + 0.5 * (1 + pygame.math.sin(current_time * 2)))) # Пульсация от 50 до 100
large_square_size = 200 + pulse_size
# Рисуем большой квадрат
pygame.draw.rect(screen, color_large_square,
(large_square_start[0] - (large_square_size - 200) // 2,
large_square_start[1] - (large_square_size - 200) // 2,
large_square_size,
large_square_size))
# Рисуем маленький квадрат
pygame.draw.rect(screen, color_small_square,
(small_square_start[0],
small_square_start[1],
small_square_size,
small_square_size))
# Обновление экрана
pygame.display.flip()
# Установка частоты смены кадров
clock.tick(fps)
# Завершение Pygame
pygame.quit()
как работает код:
Инициализация Pygame: Мы начинаем с инициализации Pygame и создания окна нужного размера.
Цвета и параметры квадратов: Устанавливаются цвета и параметры для больших и маленьких квадратов.
Основной цикл: В этом цикле происходит обработка событий (например, закрытие окна), отрисовка квадратов и обновление экрана.
Пульсация: Используется функция sin для создания эффекта пульсации большого квадрата. Он будет изменять свой размер в зависимости от времени.
Частота смены кадров: Устанавливается частота смены кадров на 2 кадра в секунду.
Просто скопируйте этот код в Python-скрипт и запустите его, чтобы увидеть анимацию!
Выглядит сложно.Делать не буду.
import pygame
import time
# Инициализация pygame
pygame.init()
# Параметры окна
WIDTH, HEIGHT = 400, 400
FPS = 2 # Частота смены кадров
# Создание окна
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Пульсирующий квадрат")
# Цвета
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
# Координаты и размеры квадратов
big_square_pos = (100, 100)
big_square_size = 200
small_square_pos = (150, 150)
small_square_size = 100
# Флаг для переключения состояний
is_small_visible = True
# Главный цикл
running = True
clock = pygame.time.Clock()
while running:
screen.fill(WHITE) # Очистка экрана
# Отрисовка большого квадрата
pygame.draw.rect(screen, BLACK, (*big_square_pos, big_square_size, big_square_size))
# Переключение состояния маленького квадрата
if is_small_visible:
pygame.draw.rect(screen, WHITE, (*small_square_pos, small_square_size, small_square_size))
# Обновление экрана
pygame.display.flip()
# Задержка
time.sleep(0.5)
# Переключение состояния
is_small_visible = not is_small_visible
# Обработка событий
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
clock.tick(FPS)
pygame.quit()