51.92K
Категория: ПрограммированиеПрограммирование

Обработка событий

1.

ОБРАБОТКА СОБЫТИЙ

2.

Pygame -
это библиотека модулей языка Python, предназначенная
для написания 2D-игр
sc = pygame.display.set_mode((800,600))
1. Установка размеров окна
pygame.draw.aaline(sc, YELLOW, (80, 50), (200, 120))
2. Отрезок (сглаженный)
pygame.draw.rect(sc, GREEN, (100, 100, 50, 80))
3. Закрашенный прямоугольник
4. Незакрашенный прямоугольник pygame.draw.rect(sc, GREEN, (100, 100, 50, 80), 2)
pygame.draw.circle(sc, YELLOW, (200, 200), 50)
5. Круг
pygame.draw.circle(sc, YELLOW, (200, 200), 50, 2)
6. Окружность
pygame.draw.polygon(sc, BLUE, ((100, 100), (200, 100), (150, 0)))
7. Многоугольник
pygame.display.update()
8. Обновление экрана

3.

https://www.youtube.com/watch?v=z
9wqNCd4isQ

4.

Установка таймера
clock = pygame.time.Clock()

5.

Выдержать задержку FPS
clock.tick(FPS)

6.

Заполнить цветом
sc.fill(BLACK)

7.

Движение желтого прямоугольника
import pygame
WIDTH = 800
HEIGHT = 600
sc = pygame.display.set_mode((WIDTH, HEIGHT))
BLACK = (0,0, 0)
YELLOW = (255, 255, 0)
FPS = 60
x = 700
clock = pygame.time.Clock()
while True:
sc.fill(BLACK)
pygame.draw.rect(sc, YELLOW, (x, 550, 100, 20))
x -= 10
pygame.display.update()
clock.tick(FPS)

8.

Основной игровой цикл
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()

9.

Запомнить нажатые клавиши
key = pygame.key.get_pressed()

10.

Проверка клавиш
if key[pygame.K_LEFT]:
if key[pygame.K_RIGHT]:
if key[pygame.K_UP]:
if key[pygame.K_DOWN]:

11.

Управление платформой
x = 350
clock = pygame.time.Clock()
while True:
sc.fill(BLACK)
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
pygame.draw.rect(sc, YELLOW, (x, 550, 100, 20))
key = pygame.key.get_pressed()
if key[pygame.K_LEFT] and x > 0:
x -= 10
if key[pygame.K_RIGHT] and x + 100 < WIDTH:
x += 10
pygame.display.update()
clock.tick(FPS)

12.

Движение шарика
bx = 300
Координаты центра шарика (bx, by)
by = 20
dx = 10
Изменение координат X и Y
dy = 10
while True:
sc.fill(BLACK)
pygame.draw.circle(sc, GREEN, (bx, by), 10)
pygame.draw.rect(sc, YELLOW, (x, 550, 100, 20))
bx += dx
by += dy
if bx < 10 or bx > 780: Если достигнута левая или правая граница
dx = -dx
if by <10 or by > 590:
Если достигнута верхняя или нижняя граница
dy = -dy
English     Русский Правила