Игра на Python с использованием библиотеки Pygame - RUBY - Академия развития и компьютерных технологий
Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
RUBY - Академия развития и компьютерных технологий
Академия развития
и компьютерных технологий
+7 901 540-96-36
+7 901 540-96-36
Заказать звонок
E-mail
info@academy-ruby.com
Адрес
г. Раменское, ул. Крымская, д.7
Режим работы
Пн. - Пт.: с 9:00 до 20:00
Сб. - Вс.: с 10:00 до 20:00
Подать заявку
О нас
  • Почему мы
  • Вакансии
  • Реквизиты
Курсы
  • ИТ и программирование
    • Первый шаг в IT
    • IT Start
    • IT Junior
    • IT Middle
    • IT Senior
  • Интеллектуальное развитие
    • Подготовка к школе
    • Азбука
    • Кубик Рубика и другие головоломки
    • Обучение чтению
    • Правила пересказа
    • Решение текстовых задач
    • Счет в пределах 10
    • Счет в пределах 100
    • Таблица умножения и деления за 16 уроков
    • Техника чтения
    • Учим цифры, пишем цифры
  • Компьютерная графика
    • Цифровой рисунок в Procreate
  • Сетевые технологии
    • Введение в сетевые технологии
Статьи
Акции
Форматы занятий
Новости
Контакты
Галерея
Раменское
  • Курсы
  • Контакты
  • Акции
  • Вопрос-ответ
  • Новости
  • ...
    Раменское
    +7 901 540-96-36
    +7 901 540-96-36
    Заказать звонок
    E-mail
    info@academy-ruby.com
    Адрес
    г. Раменское, ул. Крымская, д.7
    Режим работы
    Пн. - Пт.: с 9:00 до 20:00
    Сб. - Вс.: с 10:00 до 20:00
    Заказать звонок
    RUBY - Академия развития и компьютерных технологий
    Академия развития
    и компьютерных технологий
    О нас
    • Почему мы
    • Вакансии
    • Реквизиты
    Курсы
    • ИТ и программирование
      • Первый шаг в IT
        • Программирование в Scratch Junior
        • Программирование на платформе Code.org
      • IT Start
        • Программирование для детей в Scratch
        • Программирование для детей в Minecraft
        • Разработка мобильных приложений в MIT App Inventor
        • Разработка игр с помощью Roblox Studio (Start)
        • Создание видео, видеомонтаж
      • IT Junior
        • Разработка игр с помощью Roblox Studio (Junior)
        • Программирование микроконтроллеров BBC Micro:bit
        • Программирование для детей на Python (Junior)
        • Web-разработка для детей, HTML & CSS, JavaScript (Junior)
        • Создание анимации в Procreate
      • IT Middle
        • Создание сайта в Tilda
      • IT Senior
        • Разработка приложений на С++ (Intro)
        • Программирование и робототехника для детей на базе Arduino
    • Интеллектуальное развитие
      • Подготовка к школе
      • Азбука
      • Кубик Рубика и другие головоломки
      • Обучение чтению
      • Правила пересказа
      • Решение текстовых задач
      • Счет в пределах 10
      • Счет в пределах 100
      • Таблица умножения и деления за 16 уроков
      • Техника чтения
      • Учим цифры, пишем цифры
      • Еще
    • Компьютерная графика
      • Цифровой рисунок в Procreate
    • Сетевые технологии
      • Введение в сетевые технологии
    Статьи
    Акции
    Форматы занятий
    Новости
    Контакты
    Галерея
      "/>
      Подать заявку
      RUBY - Академия развития и компьютерных технологий
      Раменское
      +7 901 540-96-36
      +7 901 540-96-36
      Заказать звонок
      E-mail
      info@academy-ruby.com
      Адрес
      г. Раменское, ул. Крымская, д.7
      Режим работы
      Пн. - Пт.: с 9:00 до 20:00
      Сб. - Вс.: с 10:00 до 20:00
      Заказать звонок
      Поиск
      RUBY - Академия развития и компьютерных технологий
      Телефоны
      +7 901 540-96-36
      Заказать звонок
      RUBY - Академия развития и компьютерных технологий
      • О нас
        • О нас
        • Почему мы
        • Вакансии
        • Реквизиты
      • Курсы
        • Курсы
        • ИТ и программирование
          • ИТ и программирование
          • Первый шаг в IT
            • Первый шаг в IT
            • Программирование в Scratch Junior
            • Программирование на платформе Code.org
          • IT Start
            • IT Start
            • Программирование для детей в Scratch
            • Программирование для детей в Minecraft
            • Разработка мобильных приложений в MIT App Inventor
            • Разработка игр с помощью Roblox Studio (Start)
            • Создание видео, видеомонтаж
          • IT Junior
            • IT Junior
            • Разработка игр с помощью Roblox Studio (Junior)
            • Программирование микроконтроллеров BBC Micro:bit
            • Программирование для детей на Python (Junior)
            • Web-разработка для детей, HTML & CSS, JavaScript (Junior)
            • Создание анимации в Procreate
          • IT Middle
            • IT Middle
            • Создание сайта в Tilda
          • IT Senior
            • IT Senior
            • Разработка приложений на С++ (Intro)
            • Программирование и робототехника для детей на базе Arduino
        • Интеллектуальное развитие
          • Интеллектуальное развитие
          • Подготовка к школе
          • Азбука
          • Кубик Рубика и другие головоломки
          • Обучение чтению
          • Правила пересказа
          • Решение текстовых задач
          • Счет в пределах 10
          • Счет в пределах 100
          • Таблица умножения и деления за 16 уроков
          • Техника чтения
          • Учим цифры, пишем цифры
        • Компьютерная графика
          • Компьютерная графика
          • Цифровой рисунок в Procreate
        • Сетевые технологии
          • Сетевые технологии
          • Введение в сетевые технологии
      • Статьи
      • Акции
      • Форматы занятий
      • Новости
      • Контакты
      • Галерея
      Подать заявку
      • +7 901 540-96-36
        • Телефоны
        • +7 901 540-96-36
        • Заказать звонок
      • г. Раменское, ул. Крымская, д.7
      • info@academy-ruby.com
      • Пн. - Пт.: с 9:00 до 20:00
        Сб. - Вс.: с 10:00 до 20:00

      Игра на Python с использованием библиотеки Pygame

      Главная
      —
      Статьи
      —
      Языки программирования
      —Игра на Python с использованием библиотеки Pygame
      Игра на Python с использованием библиотеки Pygame
      Языки программирования
      26 сентября 2023

      Рассказываем, как можно создать свою первую игру на Python с использованием библиотеки Pygame. Добавим графику, обработку ввода с клавиатуры, добавим звука!

      Python

      Python — это язык программирования, который широко используется в интернет-приложениях, разработке программного обеспечения, науке о данных и машинном обучении (ML). Разработчики используют Python, потому что он эффективен, прост в изучении и работает на разных платформах. Программы на языке Python можно скачать бесплатно, они совместимы со всеми типами систем и повышают скорость разработки.

      В чем заключаются преимущества языка Python?

      Язык Python имеет следующие преимущества:
      • Разработчики могут легко читать и понимать программы на Python, поскольку язык имеет базовый синтаксис, похожий на синтаксис английского. 
      • Python помогает разработчикам быть более продуктивными, поскольку они могут писать программы на Python, используя меньше строк кода, чем в других языках.
      • Python имеет большую стандартную библиотеку, содержащую многократно используемые коды практически для любой задачи. В результате разработчикам не требуется писать код с нуля.
      • Разработчики могут легко сочетать Python с другими популярными языками программирования: Java, C и C++.
      • Активное сообщество Python состоит из миллионов поддерживающих разработчиков со всего мира. При возникновении проблем сообщество поможет в их решении.
      • Кроме того, в Интернете доступно множество полезных ресурсов для изучения Python. Например, вы можете легко найти видеоролики, учебные пособия, документацию и руководства для разработчиков.
      • Python можно переносить на различные операционные системы: Windows, macOS, Linux и Unix.

      Где применяется Python?

      Курсы программирования на Python в академии RUBY
      Язык Python имеет несколько стандартных примеров использования при разработке приложений, в числе которых:

      Веб-разработка на стороне сервера

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

      Python полезен при написании серверного кода, поскольку он предлагает множество библиотек, состоящих из предварительно написанного кода для сложных серверных функций. Также разработчики используют широкий спектр платформ Python, которые предоставляют все необходимые инструменты для более быстрого и простого создания интернет-приложений. Например, разработчики могут создать «скелет» интернет-приложения за считанные секунды, потому что им не нужно писать код с нуля. Затем его можно протестировать с помощью инструментов тестирования платформы независимо от внешних инструментов тестирования.

      Автоматизация с помощью скриптов Python

      Язык скриптов — это язык программирования, который автоматизирует задачи, обычно выполняемые людьми. Программисты широко используют скрипты Python для автоматизации многих повседневных задач, среди которых:
      • Одновременное переименование большого количества файлов
      • Преобразование файла в другой тип файла
      • Удаление повторяющихся слов в текстовом файле
      • Выполнение базовых математических операций
      • Отправка сообщений электронной почты
      • Загрузка контента
      • Выполнение базового анализа журналов
      • Поиск ошибок в нескольких файлах
      Наука о данных и машинное обучение

      Наука о данных извлекает ценную информацию из данных, а машинное обучение (ML) позволяет компьютерам автоматически учиться на данных и делать точные прогнозы. Специалисты по работе с данными используют Python для решения следующих задач:
      • Исправление и удаление неверных данных (очистка данных) 
      • Извлечение и выбор различных характеристик данных
      • Разметка данных добавляет данным значимые имена
      • Поиск статистической информации в данных
      • Визуализация данных с помощью диаграмм и графиков: линейных диаграмм, столбчатых диаграмм, гистограмм и круговых диаграмм
      Специалисты по работе с данными используют библиотеки Python ML для моделей машинного обучения и создания классификаторов, которые точно классифицируют данные. Классификаторы на основе Python используются в различных областях и применяются для выполнения таких задач, как классификация изображений, текста и сетевого трафика, распознавание речи и распознавание лиц. Специалисты по работе с данными также используют Python для глубокого обучения — передовой техники машинного обучения.

      Разработка программного обеспечения

      Разработчики программного обеспечения часто используют Python для различных задач разработки и программных приложений, среди которых:
      • Отслеживание ошибок в программном коде
      • Автоматическая сборка программного обеспечения
      • Управление программными проектами
      • Разработка прототипов программного обеспечения
      • Разработка настольных приложений с использованием библиотек графического пользовательского интерфейса (ГПИ)
      • Разработка игр: от простых текстовых игр до сложных видеоигр

      Создание игр с использованием библиотеки Pygame

      Создание игр с использованием библиотеки Pygame - Академия RUBY
      Pygame — это кросс-платформенная библиотека для разработки видеоигр на языке программирования Python. Она включает в себя множество функций, которые облегчают разработку игр, таких как отрисовка графики, обработка ввода и управление звуком. В этой статье мы рассмотрим, как создать простую игру на Python с использованием библиотеки Pygame.

      Установка Python

      Для начала нам нужно установить последнюю версию интерпретатора Python. Важный момент - для того, чтобы можно было пользоваться интерпретатором Python из командной строки или из редактора, необходимо добавить соответствующие переменные окружения. Это можно сделать выбрав соответствующую опцию при установке.

      Ссылка для скачивания Python - https://www.python.org/downloads/

      Редактор кода Visual Studio Code (VS Code)

      Для редактирования программного кода нашей будущей игры нам понадобиться редактор кода. Существует множество различных по функциональности редакторов кода. Для целей данной статьи мы остановимся на редакторе Visual Studio Code (или если кратко VS Code). Visual Studio Code (VS Code) - это редактор кода для разных языков программирования. Он относительно немного весит, гибкий и удобный. В нем можно писать, форматировать и редактировать код на разных языках программирования.

      VS Code не стоит путать с Visual Studio — это IDE, очень мощная и масштабная, но одновременно с этим тяжеловесная. Названия похожи, потому что у обоих средств разработки один и тот же создатель, но продукты разные по своей сути. VS Code меньше весит, проще в освоении и подходит в том числе для начинающих разработчиков.

      Редактор кода существует для всех популярных операционных систем: Windows, Linux и macOS. Он бесплатный, в отличие от большинства версий «старшего брата» Visual Studio. 

      VS Code позволяет легко писать, форматировать и редактировать код на разных языках. С его помощью можно быстро создать проект и структуру файлов в нем, он подсвечивает синтаксис кода и помогает автоматически править ошибки. В нем есть возможности для отладки и запуска кода на некоторых языках.

      Скачать Visual Studio Code можно по ссылке - https://code.visualstudio.com/download

      Расширения VS Code для работы с Python

      После скачивания редактора Visual Studio Code необходимо дополнительно скачать необходимые расширения для работы с языком программирования Python - рекомендуем установить Python или Python Extention Pack:

      vscode-python-extentions.png

      Установка Pygame

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

      pip install pygame

      Процесс создания игры

      Структура каталогов - что у тебя в структуре каталогов, то и в голове )

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

      Также решаются технические вопросы - а как мы будем создавать нашу программу, как хранить основные файлы нашей программы, где мы храним изображения, нужные библиотеки и многое другое. Всему этому мы будем учиться с вами в нашей Академии развития и компьютерных технологий RUBY.

      А пока пожалуй давайте начнем с самого простого - определим структуру  каталогов для хранения файлов нашей программы - назовем папку для нашей программы - simplegame, а также создадим внутри нее еще одну папку с именем images для хранения изображений для фона и автомобиля:
      
      PS C:\python\simplegame> ls
      Каталог: C:\python\simplegame
      
      Mode                 LastWriteTime         Length Name
      ----                 -------------         ------ ----
      d-----        27.09.2023      1:20                .vscode
      d-----        27.09.2023     13:54                images
      d-----        27.09.2023     13:26                venv
      -a----        27.09.2023     13:57            886 game.py
      

      Подключение необходимых библиотек

      # подключение игровой библиотеки pygame
      import pygame 
      # подключение библиотеки для работы с операционной системой компьютера (понадобиться для открытия файлов с нашими изображениями)
      import os
      

      Создание функции загрузки изображений

      
      # добавим функцию загрузки изображений
      def load_image(name, colorkey=None):
          # загрузка изображения в память
          fullname = os.path.join('', name)
          try:
              image = pygame.image.load(fullname)
          except pygame.error as message:
              print('Cannot load image:', name)
              raise SystemExit(message)
          # конвертирование изображения 
          image = image.convert_alpha()
          #
          if colorkey is not None:
              if colorkey is -1:
                  colorkey = image.get_at((0, 0))
              image.set_colorkey(colorkey)
          return image
      

      Инициализация библиотеки Pygame и параметров окна нашей будущей игры

      В первую очередь наша игра должна иметь свое игровое окно - это главный интерфейс нашей будущей игры. Вот пример кода для создания окна размером 1200 на 700 пикселей
      # инициализация  
      pygame.init()
      # установка режима экрана 1200 на 700 пикселей
      screen = pygame.display.set_mode((1200, 700))
      # выставление названия окна 
      pygame.display.set_caption("My Game")
      all_sprites = pygame.sprite.Group()

      Создание нашего основного персонажа - автомобиля

      Для управления нашим автомобилем, мы должны создать специальный объект в коде программы. Этот объект имеет необходимые свойства, изменяя которые возможно управлять действиями объекта. Например передвигать его в нашей игре.
      # создание автомобиля
      hero = pygame.sprite.Sprite(all_sprites)
      hero_image = load_image("images/car-frame-250x140px.png")
      hero.image = hero_image
      hero.rect = hero.image.get_rect()
      hero.rect.x = 100
      hero.rect.top = 530
      all_sprites.add(hero)
      

      Загрузка фонового изображения 

      Добавим нашему окну игры фон, который мы заранее подготовили. Вы можете скачать их из файлов, прилагаемых к данной статье. Загрузим графические объекты:
      # загрузка изображений для фона
      background = pygame.image.load("images/game-background-1200x700.png")

      Управление движением нашего автомобиля

      Чтобы сделать игру интерактивной, добавим обработку нажатия клавиш клавиатуры. Вот пример программного кода для перемещения нашего героя-автомобиля влево или вправо при нажатии на стрелки ВЛЕВО или ВПРАВО. Обращаем внимание что для того, чтобы постоянно проверять была ли нажата клавиша мы впоследствии будем использовать бесконечный цикл, в противном случае мы не сможем управлять нашим автомобилем.
      # управление движением автомобиля, контроль нажатия клавиатуры
              # проверяем была ли нажата клавиша keys = pygame.key.get_pressed() # если была нажата клавиша ВЛЕВО - перемещаем автомобиль на 5 пикселей по оси Х влево
              if keys[pygame.K_LEFT]: # движение влево             hero.rect.x -= 5
      # если была нажата клавиша ВПРАВО - перемещаем автомобиль на 5 пикселей по оси Х вправо         if keys[pygame.K_RIGHT]: # движение вправо             hero.rect.x += 5

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

      Стоит обратить внимание еще на одну деталь в коде нашей программы - это комментарии. Комментарии помогают нам понимать какая часть кода за что отвечает, а также быстрее искать ошибки, которые неминуемо возникают у каждого разработчика (даже самого опытного). Комментируйте ваш код так, чтобы вы могли легко читать его, а в идеальной ситуации любой член вашей команды мог прочитать и ориентироваться в вашем коде - это признак профессионализма.
      
      import pygame
      import os

      # добавим функцию загрузки изображений
      def load_image(name, colorkey=None):
          # загрузка изображения в память
          fullname = os.path.join('', name)
          try:
              image = pygame.image.load(fullname)
          except pygame.error as message:
              print('Cannot load image:', name)
              raise SystemExit(message)
          # конвертирование изображения
          image = image.convert_alpha()
          #
          if colorkey is not None:
              if colorkey is -1:
                  colorkey = image.get_at((0, 0))
              image.set_colorkey(colorkey)
          return image

      # инициализация  
      pygame.init()
      screen = pygame.display.set_mode((1200, 700))
      pygame.display.set_caption("My Game")
      all_sprites = pygame.sprite.Group()

      # создание автомобиля
      hero = pygame.sprite.Sprite(all_sprites)
      hero_image = load_image("images/car-frame-250x140px.png")
      hero.image = hero_image
      hero.rect = hero.image.get_rect()
      hero.rect.x = 100
      hero.rect.top = 530
      all_sprites.add(hero)

      # загрузка изображений для фона
      background = pygame.image.load("images/game-background-1200x700.png")

      # запуск основного цикла игры
      running = True
      while running:
          for event in pygame.event.get():
              if event.type == pygame.QUIT:
                  running = False
              # управление движением автомобиля, контроль нажатия клавиатуры
              keys = pygame.key.get_pressed()
              if keys[pygame.K_LEFT]: # движение влево
                  hero.rect.x -= 5
              if keys[pygame.K_RIGHT]: # движение вправо
                  hero.rect.x += 5
          # заливка фона
          screen.fill((0, 0, 0)) # отрисовка фонового изображения
          screen.blit(background, (0, 0))
          # отрисовка изображения автомобиля
          all_sprites.draw(screen)
          pygame.display.flip()

      # завершение работы программы после выхода из основного цикла программы
      pygame.quit()

      Если мы все сделали правильно, то на выходе получим результат

      vscode-python-pygame-mainwindow.png

      Заключение

      Надеемся данная статья была полезной для вас. Желаем вам успехов в освоении программирования и будем ждать вас в нашей Академии развития и компьютерных технологий RUBY.


      Также вы можете просмотреть видеообзор - https://youtu.be/CFcnngIDqOM

      Видео
      https://youtu.be/CFcnngIDqOM
      Документы
      dj1xlo2gfoi511hcg0zql902k09n8fkg
      209,8 Кб
      0fl1y9p3djbvgf4iwi18kda8ik4b1vp3
      12,4 Кб
      o6lae3ku1q0t58gfqkdok73x5s5c7x0s
      11,4 Мб
      Дополнительно
      • Комментарии
      Загрузка комментариев...
      Назад к списку

      • Современное обучение 2
      • Технологии 1
      • Языки программирования 2
      Python обучение подготовка к школе программирование
      Компания
      Почему мы
      Вакансии
      Реквизиты
      Новости
      Услуги
      ИТ и программирование
      Интеллектуальное развитие
      Компьютерная графика
      Сетевые технологии
      +7 901 540-96-36
      +7 901 540-96-36
      Заказать звонок
      E-mail
      info@academy-ruby.com
      Адрес
      г. Раменское, ул. Крымская, д.7
      Режим работы
      Пн. - Пт.: с 9:00 до 20:00
      Сб. - Вс.: с 10:00 до 20:00
      Заказать звонок
      info@academy-ruby.com
      г. Раменское, ул. Крымская, д.7
      © 2026 RUBY - Академия развития и компьютерных технологий