Перейти к содержимому

Как установить pygame в pycharm

  • автор:

Как импортировать pygame в проект?

Возникла проблема с импортированием билиотеки pygame в проект. При просмотре списка установленных пакетов с помощью p pygame вроде установлен, но при импортировании в проект он ругается: no module named pygame.

  • Вопрос задан более трёх лет назад
  • 6573 просмотра

1 комментарий

Простой 1 комментарий

spaceatmoon @spaceatmoon
У тебя несколько версий питона? Скорей всего ты не туда установил.
Решения вопроса 0
Ответы на вопрос 1

Ternick

1) Какая у вас версия python ?
2) Какая ИДЕ: PyCharm-> Сам устанавливает пакеты.
3) Установить pygame — pip install pygame
4) После установки воспользуйтесь — pip list и ищите в ней pygame если есть то по идее всё должно работать.
5) Попробуйте переустановить сначала -> pip uninstall pygame, потом пункт 3
6)По идее всё должно работать, так же работу модуля можно проверить так :
открыть консоль и написать py и в самом интерпритаторе написать import pygame если после этой строки ошибок нет, значит проблема в IDE 🙂

How to Install PyGame on PyCharm?

Problem Formulation: Given a PyCharm project. How to install the PyGame library in your project within a virtual environment or globally?

Solution that always works:

  • Open File > Settings > Project from the PyCharm menu.
  • Select your current project.
  • Click the Python Interpreter tab within your project tab.
  • Click the small + symbol to add a new library to the project.
  • Now type in the library to be installed, in your example PyGame, and click Install Package .
  • Wait for the installation to terminate and close all popup windows.

Here’s the installation process as a short animated video—it works analogously for PyGame, just type in “PyGame” in the search field instead:

Feel free to check out the following free email academy with Python cheat sheets to boost your coding skills!

To become a PyCharm master, check out our full course on the Finxter Computer Science Academy available for free for all Finxter Premium Members:

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.

To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.

His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.

Categories Dependency Management, PyCharm, Python

Be on the Right Side of Change ��

  • The world is changing exponentially. Disruptive technologies such as AI, crypto, and automation eliminate entire industries. ��
  • Do you feel uncertain and afraid of being replaced by machines, leaving you without money, purpose, or value? Fear not! There a way to not merely survive but thrive in this new world!
  • Finxter is here to help you stay ahead of the curve, so you can keep winning as paradigms shift.

Learning Resources ��‍��

⭐ Boost your skills. Join our free email academy with daily emails teaching exponential with 1000+ tutorials on AI, data science, Python, freelancing, and Blockchain development!

Check out our free WhatsApp channel to stay educated on LLM developments:

Join the Finxter Academy and unlock access to premium courses �� to certify your skills in exponential technologies and programming.

New Finxter Tutorials:

  • What is the Fastest Way to Get a Sorted Unique List in Python?
  • Top 10 Cutting-Edge AI Applications and 30 Startups Disrupting Education
  • Top 50 Cutting-Edge Artificial Intelligence (AI) Applications in Business
  • OpenAI GPT Store – Get Your GPTs Ready in 5 Simple Steps
  • Top 10 Cutting-Edge Artificial Intelligence (AI) Applications in Healthcare
  • Top 50 Cutting-Edge Artificial Intelligence (AI) Applications in Manufacturing
  • What’s Not Going to Change in 10 Years? (Jeff Bezos)
  • Top 41 Cutting-Edge Artificial Intelligence (AI) Applications in Finance
  • Top 26 Cutting-Edge Artificial Intelligence (AI) Applications in Banking
  • How to Invest in OpenAI? 5 Alternative Vehicles

Finxter Categories:

Как установить pygame в pycharm

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Руководство по программированию игр на Pygame в Python – установка и простые примеры

Python — самый популярный язык программирования нового поколения. Во всех новых областях компьютерных наук Python активно присутствует. Python имеет обширные библиотеки для различных областей, таких как машинное обучение (Numpy, Pandas, Matplotlib), искусственный интеллект (Pytorch, TensorFlow) и разработка игр (Pygame, Pyglet).

Учебник по Python Pygame

В этом уроке мы узнаем о разработке игр и рассмотрим возможности программирования с использованием Pygame (библиотека Python).

Что такое Pygame в Python?

  • Pygame в Python— это кроссплатформенный набор модулей Python, который используется для создания видеоигр.
  • Он состоит из компьютерной графики и звуковых библиотек, предназначенных для использования с языком программирования Python.
  • Pygame был официально написан Питом Шиннерсом для замены PySDL.
  • Pygame подходит для создания клиентских приложений, которые потенциально могут быть упакованы в автономный исполняемый файл.

Прежде чем изучать pygame, нам нужно понять, какую игру мы хотим разработать. Чтобы изучить pygame, необходимо иметь базовые знания Python.

Установка pygame в Windows

Перед установкой Pygame в системе должен быть установлен Python, желательно версии 3.6.1 или выше, потому что она намного удобнее для новичков и, кроме того, работает быстрее. В основном есть два способа установить Pygame, которые приведены ниже:

1. Установка через pip. Хороший способ установить Pygame — использовать инструмент pip (применяется в Python для установки пакетов). Команда следующая:

py -m pip install -U pygame --user

2. Установка через IDE. Второй способ — установить его через IDE, и здесь мы используем Pycharm IDE. Установка pygame в pycharm проста. Мы можем установить его, выполнив указанную выше команду в терминале или выполнив следующие шаги:

  • Откройте вкладку «Файл» и нажмите «Настройки».

Установка Pygame через IDE

  • Выберите интерпретатор проекта и щелкните значок +.

Выбор интерпретатора проекта

  • Он отобразит окно поиска. Найдите pygame и нажмите кнопку установки пакета.

Установка пакета

Чтобы проверить, правильно ли установлен pygame, в интерпретаторе IDLE введите следующую команду и нажмите Enter:

import pygame

Если команда выполняется успешно без каких-либо ошибок, это означает, что мы успешно установили Pygame и нашли правильную версию IDLE для использования в программировании pygame.

Проверка установки

Установка pygame на Mac

Чтобы установить pygame на Mac, выполните следующие действия.

  • Посетите официальный сайт pygame pygame.org и в следующем окне загрузите pygame-1.9.1release-python.org-32bit-py2.7-macosx10.3.dmg:

Установка pygame на Mac

Примечание. Если вы используете другую версию Python, загрузите последнюю ссылку.

  • Дважды щелкните загруженный файл и разархивируйте его. Теперь дважды щелкните распакованный файл mpkg, чтобы запустить программу установки. Следуйте инструкциям по установке pygame.
  • Запустите терминал (Cmd+Пробел, затем введите «терминал» в поле поиска). В терминале введите «python2.7» и нажмите Enter.
  • Python должен запуститься, отобразить версию 2.7.2 (2.7.1 тоже подойдет) и выдать подсказку. В командной строке Python введите «import pygame». Если вы не получаете никаких ошибок, все работает нормально.

Простой пример pygame

Вот простая программа pygame, которая дает общее представление о синтаксисе.

import pygame pygame.init() screen = pygame.display.set_mode((400,500)) done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pygame.display.flip()

После успешного выполнения он выдаст следующее окно в качестве вывода:

Вывод

Давайте разберемся с основным синтаксисом приведенной выше программы построчно:

  • import pygame — обеспечивает доступ к фреймворку pygame и импортирует все функции pygame.
  • pygame.init() — используется для инициализации всех необходимых модулей pygame.
  • pygame.display.set_mode((width, height)) — используется для отображения окна нужного размера. Возвращаемое значение — это объект Surface, который является объектом, в котором мы будем выполнять графические операции.
  • pygame.event.get() — очищает очередиь событий. Если мы не назовем это, оконные сообщения начнут накапливаться, и игра перестанет отвечать на запросы операционной системы.
  • pygame.QUIT — используется для завершения события, когда мы нажимаем кнопку закрытия в углу окна.
  • pygame.display.flip() — Pygame использует двойную буферизацию, поэтому буферы смещаются. Очень важно вызвать эту функцию, чтобы сделать видимыми любые обновления, которые вы делаете на игровом экране.

Surface Pygame

Поверхность pygame используется для отображения любого изображения. Pygame имеет предустановленное разрешение и формат пикселей. Цвет поверхности по умолчанию черный. Его размер определяется передачей аргумента размера.

Поверхности могут иметь ряд дополнительных атрибутов, таких как альфа-плоскости, цветовые ключи, отсечение исходного прямоугольника и другие. Подпрограммы blit будут пытаться использовать аппаратное ускорение, когда это возможно; в противном случае они будут использовать усовершенствованные методы копирования программного обеспечения.

Pygame часы

Время представлено в миллисекундах (1/1000 секунды) в pygame. Часы Pygame используются для отслеживания времени. Время необходимо для создания движения, воспроизведения звука или реакции на любое событие. В общем, мы не считаем время в секундах. Считаем в миллисекундах. Часы также предоставляют различные функции, помогающие контролировать частоту кадров в игре. Имеют несколько функций:

Эта функция используется для обновления часов. Синтаксис следующий:

tick(framerate=0)

Данный метод следует вызывать один раз за кадр. Он подсчитает, сколько миллисекунд прошло с момента предыдущего вызова. Аргумент частоты кадров является необязательным для передачи в функцию, и если он передается в качестве аргумента, функция будет делать задержку, чтобы игра работала медленнее, чем заданное количество тактов в секунду.

  • tick_busy_loop()

Функция tick_busy_loop() аналогична функции tick(). При вызове Clock.tick_busy_loop(20) один раз за кадр программа никогда не будет работать со скоростью более 20 кадров в секунду. Синтаксис следующий:

tick_busy_loop()
  • get_time()

get_time() используется для получения предыдущего тика. Число миллисекунд, которое isdra прошло между двумя последними вызовами в Clock.tick().

get_time()

Что такое Pygame Blit в Python?

Блиттинг pygame в Python — это процесс рендеринга игрового объекта на поверхность, и этот процесс называется блиттингом. Когда мы создаем игровой объект, нам нужно его визуализировать. Если мы не отрендерим игровые объекты и не запустим программу, то на выходе она выдаст черное окно.

Блиттинг — одна из самых медленных операций в любой игре, поэтому нам нужно быть осторожными, чтобы не сильно блитить на экране в каждом кадре. Основная функция, используемая в блиттинге, — это blit(), а именно:

blit(source,dest,area=None,special_flags=0)

Эта функция используется для вставки одного изображения в другое. Может быть размещена с аргументом dest. Аргумент dest может быть парой координат, представляющих левый верхний угол источника.

Добавление изображения

Чтобы добавить изображение в окно, сначала нам нужно создать пустую поверхность, вызвав конструктор Surface с кортежем ширины и высоты.

surface = pygame.Surface((100,100))

Приведенная выше строка создает пустое 24-битное изображение RGB размером 100*100 пикселей с черным цветом по умолчанию.

Для прозрачной инициализации Surface передайте аргумент SRCALPHA.

surface = pygame.Surface((100,100), pygame.SRCALPHA)

Рассмотрим следующий пример для отображения изображения на поверхности:

import pygame pygame.init() white =(255, 255, 255) # assigning values to height and width variable height = 400 width = 400 # creating the display surface object # of specific dimension..e(X, Y). display_surface = pygame.display.set_mode((height, width)) # set the pygame window name pygame.display.set_caption('Image') # creating a surface object, image is drawn on it. image = pygame.image.load(r'C:\Users\DEVANSH SHARMA\Desktop\download.png') # infinite loop while True: display_surface.fill(white) display_surface.blit(image,(0, 0)) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() # quit the program. quit() # Draws the surface object to the screen. pygame.display.update()

Добавление изображения в Pygame

Прямоугольник в Pygame

Rect используется для рисования прямоугольника в Pygame. Pygame использует объекты Rect для хранения прямоугольных областей и управления ими. Rect может быть сформирован из комбинации значений left, top, width и height. Его также можно создать из объектов Python, которые уже являются Rect или имеют атрибут с именем «rect».

Функция rect() используется для изменения положения или размера прямоугольника. Он возвращает новую копию Rect с затронутыми изменениями. Никаких изменений в исходном прямоугольнике не происходит.

Объект Rect имеет различные виртуальные атрибуты, которые можно использовать для перемещения и выравнивания:

x,y top, left, right, bottom topleft, bottomleft, topright, bottomright midtop, midleft, midbottom, midright center, centerx, centery size, width, height w,h

Размер прямоугольника можно изменить, задав размер, ширину или высоту. Все остальные присваивания перемещают прямоугольник без изменения его размера.

Если ширина или высота являются ненулевым значением Rect, то для ненулевого теста будет возвращено значение True. Некоторые методы возвращают Rect с размерами 0 для представления недопустимого прямоугольника.

Давайте создадим Rectangle в окне pygame, используя Rect:

import pygame pygame.init() screen = pygame.display.set_mode((400, 300)) done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pygame.draw.rect(screen,(0, 125, 255), pygame.Rect(30, 30, 60, 60)) pygame.display.flip()

После выполнения приведенного выше кода он отобразит прямоугольник в окне pygame.

Прямоугольник в Pygame

Клавиши Pygame

Pygame KEYDOWN и KEYUP обнаруживают событие, если клавиша физически нажата и отпущена. KEYDOWN определяет нажатие клавиши, KEYUP определяет ее отпускание. Оба события (нажатие клавиши и отпускание клавиши) имеют два следующих атрибута:

  • key: ключ — это целочисленный идентификатор, который представляет каждый ключ в ключевом слове.
  • mod: это битовая маска всех клавиш-модификаторов, которые были в нажатом состоянии, когда произошло событие.

Рассмотрим следующий пример нажатия и отпускания клавиши.

import pygame pygame.init() # sets the window title pygame.display.set_caption(u'Keyboard events') # sets the window size pygame.display.set_mode((400, 400)) while True: # gets a single event from the event queue event = pygame.event.wait() # if the 'close' button of the window is pressed if event.type == pygame.QUIT: # stops the application break # Detects the 'KEYDOWN' and 'KEYUP' events if event.type in(pygame.KEYDOWN, pygame.KEYUP): # gets the key name key_name = pygame.key.name(event.key) # converts to uppercase the key name key_name = key_name.upper() # if any key is pressed if event.type == pygame.KEYDOWN: # prints on the console the key pressed print(u'"<>" key pressed'.format(key_name)) # if any key is released elif event.type == pygame.KEYUP: # prints on the console the released key print(u'"<>" key released'.format(key_name))

Клавиатура Pygame

Давайте посмотрим на другой пример:

import pygame pygame.init() screen = pygame.display.set_mode((400, 300)) done = False is_blue = True x = 30 y = 30 while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE: is_blue = not is_blue pressed = pygame.key.get_pressed() if pressed[pygame.K_UP]: y -= 3 if pressed[pygame.K_DOWN]: y += 3 if pressed[pygame.K_LEFT]: x -= 3 if pressed[pygame.K_RIGHT]: x += 3 if is_blue: color =(0, 128, 255) else: color =(255, 100, 0) pygame.draw.rect(screen, color, pygame.Rect(x, y, 60, 60)) pygame.display.flip()

В приведенном выше коде прямоугольник будет отображаться в окне pygame.

Прямоугольник в окне Pygame

Когда мы нажимаем клавишу «Вниз», прямоугольник меняет форму вниз. Вывод следующий:

Изменение с помощью клавиши Pygame

Pygame Draw

Pygame предоставляет функции геометрии для рисования простых фигур на поверхности. Эти функции будут работать для рендеринга в любой формат на поверхности. Большинство функций принимают аргумент ширины, чтобы обозначить размер толщины вокруг края фигуры. Если ширина передана 0, то форма будет сплошной (заполненной).

Все функции рисования принимают аргумент цвета, который может быть в одном из следующих форматов:

  • Объекты pygame.Color
  • Триплет(RGB)(кортеж/список)
  • Четверка(RGBA)(кортеж/список)
  • Целочисленное значение, сопоставленное с пиксельным форматом поверхности.

Рисование прямоугольника

Следующие функции используются для рисования прямоугольника на заданной поверхности.

pygame.draw.rect(surface, color, rect) pygame.draw.rect(surface, color, rect, width=0)
  • Surface — экран для рисования.
  • color — этот аргумент используется для окрашивания заданной формы. Альфа-значение является необязательным, если мы используем кортеж.
  • rect(Rect) – рисование прямоугольника, положение и размеры.
  • width(int) — чтобы использовать толщину линии или указать, что прямоугольник заполнен, необязателен.
if width == 0,(default) fill the rectangle if width > 0, used for line thickness if width < 0, nothing will be drawn

Рисование многоугольника

Следующие функции используются для рисования многоугольника на заданной поверхности.

  • pygame.draw.polygon(surface,color,points)
  • pygame.draw.polygon(surface, color, points, width=0)
  • Surface — экран для рисования.
  • color — этот аргумент используется для окрашивания заданной формы. Альфа-значение является необязательным, если мы используем кортеж.
  • points(tuple(coordinate) или list(coordinate)): последовательность из 3 или более(x, y) координат, составляющих вершины многоугольника. Каждая координата в последовательности должна быть кортежем/списком.

Эллипс

Следующие функции используются для рисования эллипса на заданной поверхности.

pygame.draw.ellipse(surface, color, rect) pygame.draw.ellipse(surface, color, rect, width=0)
  • Surface — экран для рисования.
  • color — этот аргумент используется для окрашивания заданной формы. Альфа-значение является необязательным, если мы используем кортеж.
  • rect(Rect) – рисование прямоугольника, положение и размеры.

Прямая линия

Этот метод используется для рисования прямой линии на заданной поверхности. Концовок нет.

pygame.draw.line(surface,color,start_pos,end_pos,width) pygame.draw.line(surface,color,start_pos,end_pos,width=1)
  • Surface — экран для рисования.
  • color — этот аргумент используется для окрашивания заданной формы. Альфа-значение является необязательным, если мы используем кортеж.
  • start_pos — начальная позиция линии(x,y)
  • end_pos — конечная позиция строки.

Круг

Ниже приведены функции, которые используются для рисования окружности на заданной поверхности.

  • circle(surface, color, center, radius)
  • circle(surface, color, center, radius, width=0)
  • Surface — экран для рисования.
  • color — этот аргумент используется для окрашивания заданной формы. Альфа-значение является необязательным, если мы используем кортеж.
  • center – центральная точка круга как последовательность двух int/float, например(x,y)
  • radius(int или float) – радиус окружности, отсчитываемый от параметра center, если радиус равен нулю, то будет отрисовываться только центральный пиксель.

Эллиптическая дуга

Следующие функции используются для рисования эллиптической дуги на заданной поверхности.

? arc(surface, color, rect, start_angle, stop_angle) ? arc(surface, color, rect, start_angle, stop_angle, width=1)
  • Surface — экран для рисования.
  • color — этот аргумент используется для окрашивания заданной формы. Альфа-значение является необязательным, если мы используем кортеж.
  • rect(Rect) – рисование прямоугольника, его положение и размеры.
  • start_angle — начальный угол дуги в радианах.
  • stop_angle — конечный угол дуги в радианах.

Есть три условия для параметров start_angle и stop_angle:

  1. Если start_angle < stop_angle, то дуга будет нарисована против часовой стрелки от start_angle до end_angle.
  2. Если start_angle>stop_angle, то tau(tau=2*pi) будет добавлено к углу остановки.
  3. Если start_angle==stop_angle, ничего не будет нарисовано.
import pygame from math import pi pygame.init() # size variable is using for set screen size size = [400, 300] screen = pygame.display.set_mode(size) pygame.display.set_caption("Example program to draw geometry") # done variable is using as flag done = False clock = pygame.time.Clock() while not done: # clock.tick() limits the while loop to a max of 10 times per second. clock.tick(10) for event in pygame.event.get(): # User did something if event.type == pygame.QUIT: # If user clicked on close symbol done = True # done variable that we are complete, so we exit this loop # All drawing code occurs after the for loop and but # inside the main while done==False loop. # Clear the default screen background and set the white screen background screen.fill((0, 0, 0)) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.line(screen,(0, 255, 0), [0, 0], [50, 30], 5) # Draw on the screen a green line which is 5 pixels wide. pygame.draw.lines(screen,(0, 0, 0), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5) # Draw a rectangle outline pygame.draw.rect(screen,(0, 0, 0), [75, 10, 50, 20], 2) # Draw a solid rectangle pygame.draw.rect(screen,(0, 0, 0), [150, 10, 50, 20]) # This draw an ellipse outline, using a rectangle as the outside boundaries pygame.draw.ellipse(screen,(255, 0, 0), [225, 10, 50, 20], 2) # This draw a solid ellipse, using a rectangle as the outside boundaries pygame.draw.ellipse(screen,(255, 0, 0), [300, 10, 50, 20]) # Draw a triangle using the polygon function pygame.draw.polygon(screen,(0, 0, 0), [[100, 100], [0, 200], [200, 200]], 5) # This draw a circle pygame.draw.circle(screen,(0, 0, 255), [60, 250], 40) # This draw an arc pygame.draw.arc(screen,(0, 0, 0), [210, 75, 150, 125], 0, pi / 2, 2) # This function must write after all the other drawing commands. pygame.display.flip() # Quite the execution when clicking on close pygame.quit()

Рисование в Pygame

Текст и шрифт Pygame

Pygame также предоставляет средства для рендеринга шрифта и текста. Мы можем загружать шрифты из системы с помощью функции pygame.font.SysFont(). Pygame поставляется со встроенным шрифтом по умолчанию, доступ к которому можно получить, передав имя шрифта или None. Есть множество функций, помогающих работать со шрифтом.

Объекты шрифта создаются с помощью pygame.font.Font(). Фактические объекты шрифта выполняют большую часть работы, выполняемой со шрифтами. Объекты шрифта обычно используются для рендеринга текста в новые объекты Surface. Вот несколько важных функций шрифта:

Эта функция используется для рисования текста на новой поверхности. Pygame не имеет возможности рисовать текст на существующей поверхности. Это создает новую поверхность с указанным текстовым рендерингом на ней. Синтаксис следующий:

render(text, antialias, color, background=None)

Эта функция используется для определения количества пробелов или позиций, необходимых для отображения текста. Его также можно использовать для переноса слов и других эффектов макета. Синтаксис следующий:

size(bool)
  • set_bold()

Эта функция используется для выделения текста жирным шрифтом. Синтаксис следующий:

set_bold(bool)

Рассмотрим следующий пример:

import pygame pygame.init() screen = pygame.display.set_mode((640, 480)) done = False #load the fonts font = pygame.font.SysFont("Times new Roman", 72) # Render the text in new surface text = font.render("Hello, Pygame", True,(158, 16, 16)) while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: done = True screen.fill((255, 255, 255)) #We will discuss blit() in the next topic screen.blit(text,(320 - text.get_width() // 2, 240 - text.get_height() // 2)) pygame.display.flip()

Текст и шрифт Pygame

Примечание . Необходимо помнить, что определенный шрифт должен быть установлен на компьютере пользователя. Если вы не знаете, установлены шрифты или нет, у pygame есть следующая функция для перечисления всех доступных для пользователя шрифтов:

all_font = pygame.font.get_fonts()

Существует еще одна функция для создания экземпляра системного шрифта по умолчанию:

font = pygame.font.Font(None,size)

Используя любые вышеперечисленные функции, мы можем работать с привлекательным шрифтом в игре.

Pygame Sprite и обнаружение столкновений

Sprite pygame — это двумерное изображение, являющееся частью большой графической сцены. Обычно Sprite представляет собой какой-то объект на сцене.

Одним из самых важных преимуществ работы со Sprite является возможность работать с ними в группах. Мы можем легко перемещать и рисовать их одной командой, если они находятся в группе.

Модуль Sprite содержит различные простые классы для использования в играх. Необязательно использовать классы Sprite и различные групповые классы при использовании pygame.

Pygame предоставляет спрайты и группы, которые помогают обнаруживать столкновения. Обнаружение столкновений — это процесс, когда два объекта на экране сталкиваются друг с другом. Например, если в игрока попала вражеская пуля, то он может потерять жизнь или программе нужно знать, когда игрок касается монеты, чтобы она автоматически подбиралась.

Рассмотрим следующий пример:

import pygame import sys #Sprite class class Sprite(pygame.sprite.Sprite): def __init__(self, pos): pygame.sprite.Sprite.__init__(self) self.image = pygame.Surface([20, 20]) self.image.fill((255, 0, 255)) self.rect = self.image.get_rect() self.rect.center = pos def main(): pygame.init() clock = pygame.time.Clock() fps = 50 bg = [0, 0, 0] size =[300, 300] screen = pygame.display.set_mode(size) player = Sprite([40, 50]) # Define keys for player movement player.move = [pygame.K_LEFT, pygame.K_RIGHT, pygame.K_UP, pygame.K_DOWN] player.vx = 5 player.vy = 5 wall = Sprite([100, 60]) wall_group = pygame.sprite.Group() wall_group.add(wall) player_group = pygame.sprite.Group() player_group.add(player) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: return False key = pygame.key.get_pressed() for i in range(2): if key[player.move[i]]: player.rect.x += player.vx * [-1, 1][i] for i in range(2): if key[player.move[2:4][i]]: player.rect.y += player.vy * [-1, 1][i] screen.fill(bg) # first parameter takes a single sprite # second parameter takes sprite groups # third parameter is a kill command if true hit = pygame.sprite.spritecollide(player, wall_group, True) if hit: # if collision is detected call a function to destroy # rect player.image.fill((255, 255, 255)) player_group.draw(screen) wall_group.draw(screen) pygame.display.update() clock.tick(fps) pygame.quit() sys.exit if __name__ == '__main__':

Обнаружение столкновений

После нажатия клавиш со стрелками один прямоугольник столкнется с другим прямоугольником, после чего выводится:

Столкновение

Pyglet

Python предоставляет еще одну игровую библиотеку под названием pyglet, которая представляет собой кроссплатформенную библиотеку окон и мультимедиа для Python. Она используется для разработки игр и других визуально насыщенных приложений.

Pyglet поддерживает обработку событий пользовательского интерфейса, работу с окнами, графику OpenGL, загрузку изображений и видео, а также воспроизведение звуков и музыки.

Вот несколько особенностей pyglet:

  • Никаких внешних требований к установке или зависимостей.
  • Воспользуйтесь преимуществами нескольких окон и нескольких мониторов.
  • Он может загружать изображения, звук, музыку и видео в любом формате.
  • Pyglet предоставляется под лицензией BSD с открытым исходным кодом.
  • Он поддерживает как Python 2, так и 3.

Установка pyglet проста; его можно установить, введя следующую команду.

pip install pyglet

Рассмотрим следующий пример.

import pyglet window = pyglet.window.Window() lable = pyglet.text.Label('Hello world', font_name='Times New Roman', font_size=36, x= window.width//2,y=window.height//2,anchor_x='center', anchor_y='center') @window.event def on_draw(): window.clear() lable.draw() pyglet.app.run()

Pyglet

Сравнение между Pygame и Pyglet

В этом руководстве мы обсудили простой подход к программированию разработки игр, установив модуль pygame с открытым исходным кодом в среду программирования Python 3.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *