Pygame
Тип | API |
---|---|
Розробник | Pygame Community |
Стабільний випуск | 2.1.2 (26 грудня 2021 ) |
Операційна система | Багатоплатформність |
Мова програмування | C і Python[1] |
Ліцензія | GNU Lesser General Public License |
Репозиторій | github.com/pygame/pygame/ |
Вебсайт | pygame.org |
Pygame — набір кросплатформенних модулів для мови програмування Python, створений для розробки відеоігор. Включає в себе бібліотеки комп'ютерної графіки і звуку на базі SDL.
Pygame був розроблений Піттом Шінером в 2000-му році, як заміну застарілому pySDL. Метою автора було ефективно поєднати Python з SDL. Pygame має наближений до обʼєктно-орієнтованого інтерфейс, що робить його більш нативним з Python, ніж pySDL, який мав "вплив" стилю C (мова програмування)[2].
Зараз розробка ведеться відкрито спільнотою Pygame, бібліотека поширюєтся як вільне програмне забезпечення GNU Lesser General Public License.
Підтримує Linux (pygame входить до складу найпопулярніших його дистрибутивів), Windows (95, 98, me, 2000, XP, Vista, 7, 8, 10), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, та QNX. Код також може підтримувати AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, та OS/2, але це не офіційні розширення. Також підтримку отримала Android.
Функції ядра бібліотеки написані на С та Assembly. Це робить pygame дедалі швидшим, через те, що С код зазвичай в 10-20 разів швидший за Python, а Assembly в свою чергу в 100 раз швидший, ніж Python.
Також в залежностях pygame немає OpenGL, що забезпечує простішу розробку та портативність.
Pygame має функцію pygame.init(), яка ініціалізує всі модулі бібліотеки.
pygame.init()
Нині в версії 2.1.2 Pygame присутні такі модулі [[2]]
- pygame._sdl2.controller - модуль для роботи з контролерами
- pygame._sdl2.touch - модуль для роботи з сенсорним екраном
- pygame._sdl2.video - експериментальний модуль для портування нових відео систем SDL.
- pygame.camera - модуль для отримання зображення з камери
- pygame.cdrom - модуль управління пристроями компакт-дисків і відтворення звуку
- pygame.cursors - модуль завантаження зображень курсору, включає стандартні курсори
- pygame.display - модуль управління вікном або екраном
screen = pygame.display.set_mode((1080,720)) #Створюємо вікно розміром 1080 на 720 пікселів
- pygame.draw - модуль малювання графічних примітивів на поверхні (клас Surface)
pygame.draw.rect(screen, (255, 255, 255), (20, 20, 100, 75)) #Малюємо прямокутник білого кольору на поверхні screen
pygame.draw.rect(screen, (64, 128, 255), (150, 20, 100, 75), 8) #Малюємо прямокутник білого кольору на поверхні screen з краєм в 8 пікселів
- pygame.examples - модуль який містить приклади використання Pygame
- pygame.event - модуль управління подіями і чергою подій
- pygame.fastevent - модуль для багатопоточного управлінням подіями та чергою подій
- pygame.font - модуль завантаження та відображення тексту, використовує TrueType
- pygame.freetype - вдосконалений модуль завантаження та відображення тексту, використовує FreeType
font_a = pygame.font.SysFont('arial', 36) #Завантажуємо шрифт, який вже є встановленим на пристрої
fonta_b = pygame.font.Font('/usr/share/fonts/truetype/msttcorefonts/Arial.ttf', 36) #Завантажуємо шрифт з файлу
- pygame.gfxdraw - модуль для відображення графічних примітивів
- pygame.image - модуль збереження і завантаження зображень
dog_image = pygame.image.load('dog.bmp') #Завантажуємо зображення
dog_image.set_colorkey((255, 255, 255)) #Встановлюємо колір альфа-каналу(для прозорості)
- pygame.joystick - модуль для взаємодії з джойстиком, геймпадом та трекболом
- pygame.key - модуль управління клавіатурою
- pygame.locals - модуль з константами Pygame
- pygame.mask - модуль для використання масок зображення
- pygame.math - модуль який містить математичні вектори
- pygame.midi - модуль взаємодії з MIDI портами
- pygame.mixer - модуль для завантаження та відтворення звуку
- pygame.mixer.music - модуль контролю поточного звуку
- pygame.mouse - модуль управління мишею
pygame.movie- модуль програвання MPEG кліпів(застарілий модуль, відсутній в нових версіях)[3]- pygame.pixelcopy - модуль для загального копіювання масиву пікселів
- pygame.scrap - модуль для взаємодії з буфером обміну
- pygame.sndarray - модуль управління звуками за допомогою класу Numeric
- pygame.surfarray - модуль управління зображеннями за допомогою класу Numeric
- pygame.sprite - модуль для роботи зі спрайтами
- pygame.surfarray - модуль який конвертує зображення в масив пікселів
- pygame.tests - модуль для зручного тестування бібліотеки
- pygame.time - модуль управління часом та таймерами
- pygame.transform - модуль зміни розмірів, обертання і зміна орієнтації зображень
dog_image = pygame.transform.flip(dog_image, 1, 0) #Функція повертає відзеркалене зображення по вертикалі
- pygame.version - невеличкий модуль, який містить в собі інформацію про версію Pygame
Спільнота pygame — це невелика група волонтерів, які люблять створювати красиві речі. Як зазначено на офіційному сайті [Архівовано 22 вересня 2013 у Wayback Machine.], крім людей до спільноти належать декілька котів, коал, десяток собак, 3.14 гномів і 42 робота.
Приклад програми з використанням Pygame з офіційного сайту [Архівовано 10 квітня 2022 у Wayback Machine.] [Архівовано 10 квітня 2022 у Wayback Machine.]
import sys, pygame
pygame.init()
size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
screen = pygame.display.set_mode(size)
ball = pygame.image.load("intro_ball.gif")
ballrect = ball.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = -speed[1]
screen.fill(black)
screen.blit(ball, ballrect)
pygame.display.flip()
- Pyglet - бібліотека Python що надає об'єктно-орієнтований інтерфейс до OpenGL
- PyOpenGL - бібліотека з біндингами OpenGL під Python
- ↑ The pygame Open Source Project on Open Hub: Languages Page — 2006.
- ↑ а б Pygame Intro — pygame v2.1.1 documentation. www.pygame.org (Англійська) . Архів оригіналу за 10 квітня 2022. Процитовано 6 травня 2022.
- ↑ [pygame] NO MOVIE module in Pygame??. groups.google.com (Англійська) . Архів оригіналу за 6 травня 2022. Процитовано 6 травня 2022.
- Game Programming the L Line — книга, яка знайомить з програмуванням і розробки ігор з Python і Pygame
- Introduction to Computer Science Using Python and Pygame [Архівовано 3 вересня 2011 у Wayback Machine.] електронна книга, яка знайомить з програмуванням на Python і Pygame.