Как стать автором
Обновить

PyGame. Введение

Время на прочтение 4 мин
Количество просмотров 13K
Чулан

PyGame. Введение.


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

Почитать
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 12

Персональный зоопарк или немного о Pygame — Часть 1

Время на прочтение 7 мин
Количество просмотров 39K
Python *
image
Для тех, кто не в курсе: Pygame — это очень и очень неплохой фреймворк для разработки игр на языке Python. Причем поддерживается не только работа с 2D и 3D, но и при желании можно установить биндинги ко многим популярным графическим и физическим движкам. Кстати, Pygame вовсе необязательно использовать именно для игр, можно также создавать и программы с необычным интерфейсом, например, какой-нибудь трехмерный фронтенд к базе данных.
Вот мне, собственно, и захотелось рассказать об основных принципах работы с этим фреймворком, мало ли, может, пригодится кому :)
Ну что, погнали?
Всего голосов 70: ↑69 и ↓1 +68
Комментарии 37

Несколько занимательных Python-проектов

Время на прочтение 2 мин
Количество просмотров 10K
Python *
Вступление.

Я долго думал, создавать ли этот топик.
Аргумент против: творения не мои, поэтому инвайта ожидать не стоит, а в силу отсутствия исходников полезность статьи не велика.
Аргумент за: я был сильно впечатлен увиденным, а искать что-то касающееся Python-а и программирования в целом на просторах youtube-a вряд ли кто-то станет.

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

Об авторе (но не от автора).

Автором всех шести приложений является Badmephisto — студент из Словакии, живущий в настоящее время в Канаде. Он весьма известен как спидкубер, но, как мне кажется, не менее талантлив в программировании. Еще он замечательный математик, увлекающийся фракталами.
Ссылки: Cubing site, Youtube account, Fractalmath channel.

Читать дальше →
Всего голосов 24: ↑19 и ↓5 +14
Комментарии 11

Знакомство с Pygame Subset for Android

Время на прочтение 3 мин
Количество просмотров 21K
Разработка под Android *
Из песочницы
Здравия желаю.

Хочу поделиться результатами своего знакомства с Python (которое началось не так давно), а в частности с портом на платформу Android довольно известной медиа-библиотеки Pygame (которая, в свою очередь, является оберткой для не менее известной SDL). Поскольку поиск на хабре по теме поста не дал результатов, рискну предположить что тема ранее не поднималась, но в тоже время будет интересна людям, заинтересованным в применении Python для разработки приложений, использующих медиаконтент, в том числе для Android.
Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Комментарии 6

Doodle Jump на pygame

Время на прочтение 2 мин
Количество просмотров 26K
Python *
Добрый…
Хочу рассказать и показать вам свой опыт знакомства с библиотекой pygame — предположительно отличной библиотекой для реализации графичиских приложений (в большей степени игр-аркад) на языке python. Для примера была реализована (частично) игра Doodle Jump.
Поехали
Всего голосов 40: ↑37 и ↓3 +34
Комментарии 15

Плеер на pygame

Время на прочтение 3 мин
Количество просмотров 6.4K
Python *
Из песочницы
Hello world, %Username%. Я заметил, что в последнее на Хабре время достаточно много постов про python. Да, язык набирает популярность. Ура товарищи! Вот и я решил приобщиться к этому языку. Достаточо скоро надоело хэлловорлдить и захотелось мне написать что то нужное.Лирическое отстпуление: Перешел с win на ubuntu(Знаю, что попса, но ради дела, а не понта делается) и понял, что нет приемлимого аудиопроигрывателя в моем поле зрения, все проигрыватели предлагали либо выглядели не приятно, либо были слишком тяжелыми. Немного поленившись я взялся за дело.
Читать дальше →
Всего голосов 20: ↑10 и ↓10 0
Комментарии 12

Автотрекинг низкоорбитальных спутников или Слушаем радиосигнал с МКС

Время на прочтение 2 мин
Количество просмотров 27K
Стандарты связи *


Американский инженер и радиолюбитель Трэвис Гудспид (Travis Goodspeed) на конференции Summercon 2013 продемонстрировал самодельную систему автоматического наведения спутниковой тарелки на движущиеся цели. Дизайн системы он опубликовал в открытом доступе, программы для управления написаны на Питоне.
Читать дальше →
Всего голосов 55: ↑49 и ↓6 +43
Комментарии 21

Пишем платформер на Python, используя pygame

Время на прочтение 11 мин
Количество просмотров 333K
Python *Разработка игр *
Туториал
Из песочницы
image
Сразу оговорюсь, что здесь написано для самых маленькихначинающих.

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

Что такое платформер?


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

Одними из моих любимых игр данного жанра являются «Super Mario Brothers» и «Super Meat Boy». Давайте попробуем создать нечто среднее между ними.
Читать дальше →
Всего голосов 93: ↑89 и ↓4 +85
Комментарии 46

Пишем платформер на Python. Часть 2. Подчасть 1, подготовка к созданию редактора уровней

Время на прочтение 9 мин
Количество просмотров 61K
Python *Разработка игр *
Туториал

Привет, друзья!

Продолжаем разбираться с нашим МариоБоем. Начало тут, продолжение тут. В этой подчасти второй части мы сделаем приготовление для создания редактора уровней, а именно: добавим турбо режим бега герою, смертельно опасные платформы, движущиеся монстры, телепортеры, принцессу и парсер уровней, дабы во второй подчасти не отвлекаться на всё это.
Внимание! Картинки!
Всего голосов 37: ↑33 и ↓4 +29
Комментарии 17

Пишем платформер на python, используя pygame. Часть 2 подчасть 2. Редактор уровней

Время на прочтение 7 мин
Количество просмотров 39K
Python *Разработка игр *
Туториал

Привет, друзья! Сегодня мы наконец-то доделаем нашего мариобоя. Начало тут и тут. Вот только мы не будем изобретать свой велосипед в виде редактора уровней, а воспользуемся готовым мощным инструментом. За знакомство с которым я благодарен господам(товарищам) sourcerer и Tarvitz

Почему так?


На это есть несколько причин
  • Удобный редактор уровней не пишется за 5 минут, лучше потратим это время на допиливание самой игры
  • Более легкий способ добавления в игру разных на вид типов блоков
  • Tiled map editor является универсальным инструментом для 2d игр, разобравшись с ним единожды, мы приобретаем навык генерации уровней для разных игр, написанных на разных языках и технологиях

Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 13

Соединяем эллиптический тренажер и pygame

Время на прочтение 5 мин
Количество просмотров 26K
Python *Разработка игр *
Привет, друзья! Случилось однажды так, что для восстановления после травмы я прикупил себе такой вот прибор.

Со своими прямыми обязанностями он справлялся вполне удовлетворительно, но было одно «но», и заключалось оно в том, что спидометр путался в показаниях, и следовательно, показывал разные результаты по пройденной дистанции. Если идти достаточно медленно, то спидометр вообще молчал. И решено было сделать свой спидометр с… ну вы поняли.
Что из этого получилось
Всего голосов 54: ↑52 и ↓2 +50
Комментарии 9

Питон, смещение тона и Пианопьютер

Время на прочтение 4 мин
Количество просмотров 17K
Python *
Перевод
От переводчика:

Статья, которую я предлагаю вам почитать, не нова — она опубликована аж 29 марта. Но на Реддите ее запостили всего несколько дней назад, да и актуальности своей она точно не потеряла. Интересность ее в том, что автор на простом и коротком примере демонстрирует практическое применение трех больших и популярных библиотек: numpy, scipy и pygame. Про первые две многие слышали, но все больше в контексте научных работ, так что интересно посмотреть на их применение в «обычной» жизни. В конце статьи прекрасная видео-демонстрация результата, хотя бы ее точно стоит посмотреть.

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

Запишите звук, измените тон 50 раз и сопоставьте каждому новому звуку клавишу на клавиатуре компьютера. Получится Пианопьютер!

Читать дальше →
Всего голосов 55: ↑43 и ↓12 +31
Комментарии 17

Pygest #19. Релизы, статьи, интересные проекты, пакеты и библиотеки из мира Python [20 ноября 2017 — 5 декабря 2017]

Время на прочтение 2 мин
Количество просмотров 9.7K
Python *Учебный процесс в IT Читальный зал

image Всем привет! Это уже девятнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.

Присылайте свои интересные события из мира Python. Вместе мы сделаем Python еще лучше:)

Итак, поехали!



Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 10

Pygest #21. Релизы, статьи, интересные проекты, пакеты и библиотеки из мира Python [1 января 2018 — 17 января 2018]

Время на прочтение 2 мин
Количество просмотров 9.3K
Python *Читальный зал

image Всем привет! Это уже двадцать первый выпуск дайджеста на Хабрахабр о новостях из мира Python.

Присылайте свои интересные события из мира Python.

С предыдущим digest можно ознакомиться здесь.

Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 4

Создание игр на Python 3 и Pygame: Часть 1

Время на прочтение 8 мин
Количество просмотров 335K
Python *Разработка игр *
Перевод
Многие разработчики приходят в разработку ПО, потому что хотят создавать игры. Не все могут стать профессиональными разработчиками игр, но любой может создавать собственные игры из интереса (а может быть, и с выгодой). В этом туториале, состоящем из пяти частей, я расскажу вам, как создавать двухмерные однопользовательские игры с помощью Python 3 и замечательного фреймворка PyGame.

(Остальные части туториала: вторая, третья, четвёртая, пятая.)

Мы создадим версию классической игры Breakout. Освоив этот туториал, вы будете чётко понимать, что необходимо для создания игры, познакомитесь с возможностями Pygame и напишете собственный пример игры.

Мы реализуем следующие функции и возможности:

  • простые стандартные GameObject и TextObject
  • простой стандартный Game object
  • простая стандартная кнопка
  • файл конфигурации
  • обработка событий клавиатуры и мыши
  • кирпичи, ракетка и мяч
  • управление движением ракетки
  • обработка коллизий мяча с объектами игры
  • фоновое изображение
  • звуковые эффекты
  • расширяемая система спецэффектов

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


Готовый исходный код выложен здесь.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 4

Создание игр на Python 3 и Pygame: Часть 2

Время на прочтение 5 мин
Количество просмотров 61K
Python *Разработка игр *
Туториал
Перевод
image

(Остальные части туториала: первая, третья, четвёртая, пятая.)

Во второй из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame, мы рассмотрим класс TextObject, используемый для рендеринга текста на экране. Мы создадим основное окно, в том числе и фоновое изображение, а затем научимся отрисовывать объекты: кирпичи, мяч и ракетку.

Класс TextObject


Класс TextObject предназначен для отображения текста на экране. Можно сделать вывод, что с точки зрения дизайна он должен быть подклассом класса GameObject, потому что тоже является визуальным объектом и его тоже иногда нужно двигать. Но я не хотел вводить глубокую иерархию классов, при которой весь отображаемый Breakout текст оставался на экране неизменным.

Класс TextObject создаёт объект шрифта. Он рендерит текст на отдельную текстовую поверхность, которая затем копируется (рендерится) на основную поверхность. Интересный аспект TextObject заключается в том, что у него нет какого-то фиксированного текста. Он получает функцию text_func(), вызываемую каждый раз, когда он рендерится.

Это позволяет нам обновлять отображение жизней и очков в Breakout, просто создав функцию, возвращающую текущие жизни и очки, а не отслеживать то, какие текстовые объекты отображают очки и жизни и обновлять их текст при каждом их изменении. Это удобный трюк из функционального программирования, и в крупных играх он позволяет поддерживать удобство и аккуратность программы.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 7

Создание игр на Python 3 и Pygame: Часть 3

Время на прочтение 5 мин
Количество просмотров 26K
Python *Разработка игр *
Перевод
image
(Остальные части туториала: первая, вторая, четвёртая, пятая.)

Это третья из пяти частей туториала о создании игр с помощью Python 3 и Pygame. Во второй части мы рассмотрели класс TextObject, используемый для рендеринга текста на экран, создали основное окно и узнали, как отрисовывать объекты: кирпичи, мяч и ракетку.

В этой части мы погрузимся глубже в сердце Breakout и узнаем, как обрабатывать события, познакомимся с основным классом Breakout и увидим, как перемещать различные объекты в игре.

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


В Breakout есть три типа событий: события нажатий клавиш, события мыши и события таймера. Основной цикл в классе Game обрабатывает нажатия клавиш и события мыши и передаёт их подписчикам (вызывая функцию-обработчик).

Хотя класс Game очень общий и не обладает знаниями о реализации Breakout, сама подписка и способы обработки событий очень специфичны.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 0

Создание игр на Python 3 и Pygame: Часть 4

Время на прочтение 6 мин
Количество просмотров 41K
Python *Разработка игр *
Туториал
Перевод
image

Это четвёртая из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame. В третьей части мы углубились в сердце Breakout и узнали, как обрабатывать события, познакомились с основным классом Breakout и увидели, как перемещать разные игровые объекты.

(Остальные части туториала: первая, вторая, третья, пятая.)

В этой части мы узнаем, как распознавать коллизии и что случается, когда мяч ударяется об разные объекты: ракетку, кирпичи, стены, потолок и пол. Наконец, мы рассмотрим важную тему пользовательского интерфейса и в частности то, как создать меню из собственных кнопок.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 4

Создание игр на Python 3 и Pygame: Часть 5

Время на прочтение 8 мин
Количество просмотров 30K
Python *Разработка игр *
Туториал
Перевод
image

Это последняя из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и PyGame. В четвёртой части мы научились распознавать коллизии, реагировать на то, что мяч сталкивается с разными игровыми объектами и создали игровое меню с собственными кнопками.

(Остальные части туториала: первая, вторая, третья, четвёртая.)

В последней части мы рассмотрим различные темы: конец игры, управление жизнями и очками, звуковые эффекты, музыку и даже гибкую систему спецэффектов. На десерт мы рассмотрим возможные улучшения и направления дальнейшего развития.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 0

Может ли геймпад заменить клавиатуру? Пробуем программировать на стиках

Время на прочтение 6 мин
Количество просмотров 11K
Python *Периферия Игры и игровые консоли
Перевод
image

Введение


Для печати на клавиатуре необходимо неподвижно сидеть или стоять. Геймпады, в отличие от них, портативные и компактные. Управляя ими, можно ходить по комнате или прилечь на диван.

Из-за малого количества кнопок на геймпаде никто не рассматривал их как средство ввода объёмных текстов, например, в программировании.

Однако аналоговые стики (а у большинства геймпадов их два) имеют потенциал обеспечения бесконечного количества вариантов ввода. Вопрос сводится к выбору подходящих жестов для максимальной эффективности и минимального напряжения больших пальцев.

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


Экранный ввод текста в Legend of Zelda

В Legend of Zelda игрок должен по очереди выбирать буквы при помощи крестовины со стрелками и каждый раз нажимать кнопку подтверждения для добавления буквы в поле ввода текста.
Читать дальше →
Всего голосов 42: ↑42 и ↓0 +42
Комментарии 17
1