Статья Автор: Омарбек Нұр-Мұхаммед

Теория

Анимация изменения размера

В этом примере изменяется радиус круга. В примере используются две переменные:

  • increase (bool) - если значение True, то радиус увеличивается, в противном случае радиус уменьшается
  • radius (int) - значение радиуса
import sys
import pygame
pygame.init()

SIZE = WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()

increase = True
radius = 1

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    if increase: radius += 1
    else: radius -= 1

    if radius >= 100: increase = False
    elif radius <= 10: increase = True

    screen.fill((0, 0, 0))
    pygame.draw.circle(screen, (255, 255, 255), (WIDTH // 2, HEIGHT // 2), radius)
    pygame.display.update()

    clock.tick(30)

Алгоритм рисования следующий:

  • Закрасить экран
  • Нарисовать примитив
  • Обновить экран

Ещё один пример:

import sys
import pygame
pygame.init()

SIZE = WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()

radius = 0

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    radius = 0 if radius > 100 else radius + 1

    screen.fill((0, 0, 0))
    pygame.draw.circle(screen, (255, 255, 255), (WIDTH // 2, HEIGHT // 2), radius * 5, 5)
    pygame.display.update()

    clock.tick(30)

 

С помощью цикла можно создать несколько объектов:

for i in range(3):
        pygame.draw.circle(screen, (255, 255, 255), (WIDTH // 2 * i, HEIGHT // 2 * i), radius * 5, 5)

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать