Создание игры в Python

XXIV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Создание игры в Python

Потапов А.Е. 1
1МБОУ г. Иркутска СОШ № 3
Потапов Е.А. 1
1МБОУ г. Иркутска СОШ № 3
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

На сегодняшний день огромное количество людей проводят свое свободное время за компьютером, будь то играя в игры, работая и зарабатывая деньги или же просто читая новости. К таким людям можно отнести самых обычных детей и взрослых, программистов и предпринимателей, инженеров и художников. Из всех перечисленных мы бы хотели поговорить о программистах, потому что именно они связаны с нашим проектом. Итак, программист - это специалист, который занимается разработкой исходного кода, алгоритма и компьютерной программы на основе специальных математических моделей. Такой программой может быть операционная система компьютера, видеоигра, web-сайт, мобильное приложение, текстовый редактор и даже алгоритм работы кофемашины. Программный код пишется на специальном языке программирования. Он состоит из обычных слов и некоторых специальных символов, присвоенных своему языку. В наше время насчитывается более 100 языков программирования, но самые распространенные из них – Java, Python, PHP, C#, JavaScript, C, С++, Objective-C, Swift, ABC Pascal и другие. Так как создание нашей игры будет происходить на языке программирования Python, расскажем о нём поподробнее. Python — это высокоуровневый язык программирования, который используется в различных сферах IT, таких как машинное обучение, разработка приложений, web и другие. Python очень популярен среди новичков и любителей программирования, потому что он очень прост и удобен в использовании. В 2019 году Python стал самым популярным языком программирования, обогнав Java. От выбора языка, программист зависит от конкретной задачи и собственных знаний того или иного языка. Его выбор полностью зависит от его намерений, например, создать игру, мобильное приложение или же собственный сервер. Квалифицированный программист может уверенно использовать 2-4 языка. У программистов широкая сфера приложения профессиональных знаний, к такой сфере можно отнести IT-сферу.Сокращение IT означает Information Technology, что в переводе с английского – информационные технологии. IT-сфера – одна из самых перспективных отраслей в мировой экономике, это деятельность по изучению и разработке процессов сбора, хранения, поиска, обработки и передачи информации, а также изучение и разработка процессов управления информацией с помощью компьютеров и других устройств. Сегодня IT-специалистами называют относительно большую группу людей профессионалов, занимающихся одним и тем же видом деятельности и имеющих общие интересы и задачи, чья сфера деятельности так или иначе связана с информационными технологиями в целом и разработкой программного обеспечения. Сфера IT и программирования с каждым днем набирает обороты и все больше и больше развивается в новых технологиях по всему миру вперед, упрощая жизнь обычных людей.

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

Целью нашей работы является создание своей игры на языке программирования Python.

Задачи:

  • Узнать историю возникновения компьютерных игр.

  • Рассмотреть технологию создания компьютерной игры.

  • Сравнить и выбрать для себя игры для создания.

  • Ознакомиться с библиотекой Tkinter .

  • Продумать архитектуру игры.

  • Реализовать игру.

  • Апробировать игру.

Объект исследования - язык программирования Python.

Предмет исследования - игра “Арканоид”.

Гипотеза - возможно ли создать игры на Python, насколько это эффективно.

Методы исследования:

  • Наблюдение;

  • Чтение научной литературы;

  • Эксперимент;

  • Анкетирование.

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

ГЛАВА 1. ИСТОРИЯ ЯЗЫКА PYTHON И СТРУКТУРА КОМПЬЮТЕРНЫХ ИГР

История языка программирования Python

Происхождение названия и история создания

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

Создатель языка Python — нидерландский программист Гвидо ван Россум. Он был участником проекта по написанию ABC Pascal, языка для обучения программированию. В конце 1989 года Гвидо приступил к разработке своего нового языка и задумал его как потомка ABC, способного к обработке исключений и взаимодействию с операционной системой Amoeba. На тот момент он работал в центре математики и информатике в Нидерландах.

Он назвал его в честь британского комедийного шоу «Monty Python», что в переводе означает «Летающий цирк Монти Пайтона», которое было популярно в начале 1970-х годов. Это телешоу позволяло автору расслабиться и отвлечься от разработки языка. Однако, несмотря на настоящее происхождение названия, для людей более очевидно связывать Python со словом «змея». Этому также способствует логотип, на котором изображена рептилия. И хотя создатель языка не раз говорил, что название никак не связано со змеями, повлиять на мнение общества так и не удалось. Так и получился Python.

Развитие Python

Python свободно распространялся через интернет и со временем у него появились последователи — люди, заинтересованные в развитии этого языка программирования. Первая публикация Python состоялась в феврале 1991 года — это была версия 0.9.0. В 1994 году Гвидо опубликовал Python 1.0, а потом одна за другой вышли и другие версии: до 2.0 язык обновился в октябре 2000, до 3.0 — в декабре 2008. В октябре 2021 мир увидела самая свежая версия — Python 3.10.0.

Python — простой язык

Синтаксис Питона всегда выделял его на фоне других языков программирования. Он не страдает избыточностью, схожесть синтаксиса с обычным английским позволяет понять код даже обычному пользователю, кроме того, программист пишет меньше строк кода, потому что нет необходимости использовать символы: «;», «{», «}». Вложенность обозначается отступами, что повышает читаемость кода и приучает новичков к правильному оформлению.

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

Python упрощает написание кода и делает разработку быстрой, всё потому что он обладает следующими особенностями:

  • Динамическая типизация. Программисту не нужно указывать тип переменных, язык присвоит его сам. Константы, переменные и числовые значения разных типов, участвующие в одной операции, автоматически приводится к нужному по определённым правилам.

  • Удобный возврат нескольких значений функцией. Их можно перечислить через запятую, и они автоматически преобразуются в список, то есть не нужно выделять память и передавать указатели в функцию.

  • Автоматическое выделение памяти. Программисту не нужно самостоятельно выделять память под что-либо. С одной стороны, это уменьшает контроль программиста над программой, а с другой, разработка значительно ускоряется.

  • Сборщик мусора. Если объект становится бесполезным или на него перестаёт что-либо ссылаться, он автоматически удаляется сборщиком мусора. Сборщик мусора позволяет оптимизировано использовать память и не удалять бесполезные объекты вручную.

  • a, b = b, a. Эта строка меняет местами значения переменных, теперь то, что было в a, находится в b и наоборот. Такое возможно, потому что Питон сначала рассматривает переменные справа от знака «=» и помещает их в список, то же он делает с элементами слева от «=», затем он связывает каждый элемент правого списка с левым. Таким способом можно обменивать значения не только двух переменных, но и трёх, пяти и так далее.

  • Привязка типа данных. Тип данных привязан к значению, а не к переменной. То есть значение - это какой-то объект с атрибутами, которые определяют его тип и другие характеристики, а переменная - просто ссылка на этот объект. Такой подход позволил обойтись без явного определения типов и значительно упростил повторное присваивание значения переменной.

  • Интерпретируемый язык. Написанный код не нужно компилировать, достаточно запустить его и получить результат. Более того, можно работать в интерактивном режиме и получать результат буквально после каждой операции.

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

Чтобы ускорить разработку, часть программы, обычно не сильно влияющую на скорость работы пишут на Питоне.

Именно благодаря простоте этот язык программирования смог занять доминирующее место в сфере машинного обучения. Люди, так или иначе связанные с наукой, предпочитают не тратить много времени на такие вещи, как написание кода, поэтому Python отлично подошёл для реализации поставленных перед ними задач.

Популярность

Несмотря на то что языку уже более 31 года, он популярен среди программистов всего мира. Python используется почти в каждом среднем или крупном проекте, если не как основной инструмент разработки, то как инструмент для создания прототипа или написания какой-то его части.

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

Преимущества, чем хорош Python

Специалисты в этой сфере выделяют огромное множество преимуществ у Python. К ним относятся:

  • Простота и минималистичность. Чтение программы на Python очень напоминает текст английского языка, хотя и достаточно строгого. Такая конструкция Python является одной из его самых сильных сторон.

  • Простота синтаксиса. Низкий порог0вхождения (при изучении нового языка программирования можно быстро и без больших усилий добиться значительных результатов). Код языка чистый и понятный, без лишних символов и выражений.

  • Расширяемость и гибкость. Python можно легко расширить для взаимодействия с другими программными системами и библиотеками или встроить в другие программы в качестве компонента. Например, если вам нужно, чтобы какая-то часть программы работала очень быстро или вы вынуждены скрыть часть алгоритма, вы можете написать эту часть программы на C или C++, а затем вызывать её из программы на Python.

  • Интерпретируемость. Интерпретатор Python есть для всех популярных платформ и по умолчанию входит в большинство дистрибутивов Linux. Программа просто выполняется из исходного текста. Python сам преобразует этот исходный текст в некоторую промежуточную форму, называемую байт-кодом. Байт-код - это код виртуального процессора, который обычно интерпретируется в машинный. Всё это заметно облегчает использование Python, поскольку нет необходимости заботиться о компиляции программы, подключении и загрузке нужных библиотек и т.д.

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

  • Стандартизированность. У Python есть единый стандарт для написания кода — Python Enhancement Proposal или PEP, что в переводе означает Предложения по развитию Python, благодаря чему язык остаётся читабельным даже при переходе от одного программиста к другому.

  • Open Source. Open Source – это обширный и постоянно растущий ресурс для разработчиков, изучая который, они прокачивают свои навыки, начинают понимать больше и становятся лучше как программисты. У интерпретатора Python открытый код, то есть любой, кто заинтересован в развитии языка, может поучаствовать в его разработке и улучшении.

  • Большое сообщество. Вокруг Python образовалось дружественное сообщество, которое поможет новичку или уже опытному разработчику и разобраться в его проблеме. Во всём мире проходит много мероприятий, где можно познакомиться с коллегами и узнать много нового.

  • Востребованность на рынке труда и поддержка гигантами IT-сферы. Python-разработчики0востребованы во многих проектах и им несложно найти работу. Разработку на Python ведут в Google, Spotify, Netflix, Microsoft Intel, а в России — «Яндекс», «ВКонтакте» и «Сбербанк». Это серьёзно влияет на статус языка.

Недостатки Python

У Python, как и у любого другого языка, есть не только плюсы, но и минусы, а среди разработчиков - не только фанаты, но и ненавистники. К недостаткам Python можно отнести следующее:

  • Низкая производительность. Python требует высоких вычислительных мощностей серверов и компьютеров. Это делает его не таким быстрым, он отстаёт от других языков по производительности. В условиях сильного развития мощности это не так заметно, как раньше, но всё равно даёт о себе знать. Чтобы нивелировать эту проблему, разработчики обращаются к языку программирования C для реализации проблемного участка кода.

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

  • Глобальная0блокировка интерпретатора (GIL). Это способ синхронизации потоков,0который используется в некоторых интерпретируемых языках программирования. Хотя GIL является самым простым способом избежать конфликтов при одновременном обращении разных потоков к одним и тем же участкам памяти, у такого подхода есть недостаток — ограничение параллельности вычислений. Также он не позволяет достигать высокой эффективности вычислений при работе на многоядерных системах.

Что можно написать на Python

Python используют во многих областях программирования, поэтому на нём можно создать что душе угодно:

  • Интерфейс и внутренний функционал web-сайта. Программист легко может работать со связями URL адресов, обращениями к базам данных и созданием HTML файлов, которые пользователь видит в браузере.

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

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

  • База данных. База данных — это информация, систематизированная по общим0признакам и специальным правилам. В любом большом проекте используются базы данных, в них хранится информацию о пользователях, изменениях в программе и т. д.

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

  • Игра. В Python в основном создаются самые простые игры, начиная от змейки закачивая 2D платформером. Создавать 3D игры – очень и очень трудно. Python используется либо для разработки прототипа, либо для реализации какой-то части игры. Для написания простенькой игры можно воспользоваться библиотекой Pygame или Arcade, которые дают все необходимые инструменты и возможности для создания небольшой 2D игры.

  • Язык программирования. Python достаточно высокоуровневый язык, поэтому создавать на нём ещё один язык программирования будет глупо, но возможно. Полезнее будет разработать интерпретатор или библиотеку для Python или другого языка программирования.

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

ГЛАВА 2. СОЗДАНИЕ СВОЕЙ 2D ИГРЫ

Подглава 2.1 Ход проделанной работы

Итак, приступаем к нашей работе. Первыми шагами к написанию нашей работы было ознакомление со всей нужной нам информацией, а именно с внутренней составляющей компьютерных игр и языком программирования Python. После чего мы начали прописывать определенные части своей работы, чтобы в последствии упростило нам написание нашего кода. Когда мы были готовы приступать к нашей работе, мы открыли свой редактор кода, который используем для написания программ на Python. Им является Visual Studio Cod, потому что он очень прост в чтении языка, имеет приятное и понятное для глаз оформление и удобен в устранении своих ошибок при написании кода программы. Далее мы создали файл своей работы, чтобы производить дальнейшие сохранения по ходу написания кода.

Написание нашей игры начиналось с выбора библиотек, классов и модулей. В своей игре мы использовали библиотеку Tkinter, для того чтобы у нас появилась графика в игре. Она входит в набор стандартных библиотек Python. Позволяет рисовать простейшие объекты — линии, прямоугольники, круги и красить их в разные цвета. Такой простой Paint, только для Python.

Мы решили создать игру «Arkanoid». Логика игры следующая, есть игровое поле — простой прямоугольник с твёрдыми границами. Когда шарик касается стенки или потолка, он отскакивает в другую сторону. Если он упадёт на пол — вы проиграли. Чтобы этого не случилось, внизу вдоль пола летает платформа, а вы ей управляете с помощью стрелок. Ваша задача — подставлять платформу под шарик как можно дольше. За каждое удачное спасение шарика вы получаете одно очко. Чтобы реализовать такую логику игры, нужно предусмотреть такие сценарии поведения:

  • игра начинается;

  • шарик начинает двигаться;

  • если нажаты стрелки влево или вправо — двигаем платформу;

  • если шарик коснулся стенок, потолка или платформы — делаем отскок;

  • если шарик коснулся платформы — увеличиваем счёт на единицу;

  • если шарик упал на пол — выводим сообщение и заканчиваем игру.

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

ЗАКЛЮЧЕНИЕ

В ходе моей проделанной исследовательской работы нам удалось добиться желаемого результата. У нас получилось создать игру на языке программирования Python, конечно, не без каких-либо проблем и недочётов. К такому недочёту можно отнести отсутствие звуков, что в дальнейшем мы постараемся исправить. Мы ожидали, что создание игры не будет какой-то тяжелой работой, но оказалось все совсем иначе. В отличие от создания 2D моделей, написание кода и автоматизация работы функций в моих кодах было очень трудоемким занятием, ведь если мы сделаем хоть один не правильный шаг, то будто бы попадаем в зыбучие пески, из которых очень тяжело выбраться. Но все же мы справились с нашими задачами и поставленной целью и в дальнейшем постараемся доработать свою игру и выйти на еще более высокий уровень. Я попросил своих друзей оценить мою игру и что удивительно, игра, по их мнению, оказалась очень даже хороша для первого раза и понравилась всем.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1. Как устроены компьютерные игры: 2D игры // zen.yandex.ru URL: https://zen.yandex.ru/media/id/5dc19d782fda8600af6cbc4d/kak-ustroeny-kompiuternye-igry-2d-igry-5e21f73a92414d00b16b53f5 (дата обращения: 08.02.2022).

  2. Библиотека Pygame / Часть 1. Введение // Хабр URL:https://habr.com/ru/post/588605/ (дата обращения: 03.02.2022).

  3. Компьютерные игры: классификация и особенности // Playground URL:https://www.playground.ru/misc/news/kompyuternye_igry_klassifikatsiya_i_osobennosti-323484 (дата обращения: 15.02.2022).

  4. Создайте 2D-игру в Unity // Unity URL: https://unity.com/ru/how-to/beginner-2D-game-resources (дата обращения: 08.02.2022).

  5. Самоучитель Python // Python 3 для начинающих URL: https://pythonworld.ru/samouchitel-python (дата обращения: 03.02.2022).

  6. Как программировать игры на Python с помощью библиотеки Pygame // wikiHow URL: https://ru.wikihow.com/программировать-игры-на-Python-с-помощью-библиотеки-Pygame (дата обращения: 10.02.2022).

  7. Создание игр на Python 3 и Pygame: Часть 1 // envatotuts+ URL: https://code.tutsplus.com/ru/tutorials/building-games-with-python-3-and-pygame-part-1--cms-30081 (дата обращения: 28.01.2022).

  8. Создание 2D платформера на Python // itProger URL: https://itproger.com/news/sozdanie-2d-platformera-na-python (дата обращения: 28.01.2022).

  9. 2D. Что такое 2d? // TOPAuthor URL:https://www.topauthor.ru/2d__chto_takoe_2d_f664.html (дата обращения: 03.02.2022)

  10. Что такое Python: чем он хорош, где пригодится и как его выучить // Медиа Технологии URL: https://netology.ru/blog/python (дата обращения: 15.02.2022).

  11. Что такое Python и для чего он используется // Все о Python URL: https://all-python.ru/osnovy/yazyk-programmirovaniya.html (дата обращения: 15.02.2022).

  12. Уроки начинающим // PythonRu URL: https://pythonru.com/ (дата обращения: 07.02.2022).

  13. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И СВЯЗЬ. МОЖНО ЛИ СДЕЛАТЬ КАРЬЕРУ В IT? // ПРОФориентатор URL:https://proforientator.ru/publications/articles/informatsionnye-tekhnologii-i-svyaz-mozhno-li-sdelat-kareru-v-it.html (дата обращения: 05.02.2022).

  14. CREATE AND SHARE ART // PixilArt URL: https://www.pixilart.com/ (датаобращения: 27.01.2022).

  15. Что такоевидеоигра: жанры, история, зависимость // SPRINTinvest.RU URL: https://sprintinvest.ru/chto-takoe-videoigra-zhanry-istoriya-zavisimost (дата обращения: 10.02.2022).

  16. Ю.Д. Романова Информатика и информационные технологии - 3-е изд. - Новое Экономическое Образование, 2009. - 688 с.

  17. Брякалов Г. А. и др. Информатика и информационные технологии. - 1-е изд. - СПб.: Корона принт, 2005. - 672 с.

  18. Марк Лутц Изучаем Python. - 4-е изд. – Пер. с англ. - СПб: Символ-Плюс, 2011. - 1280 с.

  19. Прохоренок Н., Дронов В. Python 3 и PyQt 5. Разработка приложений. - 2-е изд. - СПб.: Профессиональное Программирование, 2016. - 832 с.

  20. Эл Свейгарт Учим Python, делая крутые игры. - 4-е изд. – Пер. с англ. - М.: Бомбора, 2018

Приложение 1

Приложение 2

import tkinter

import random

WIDTH, HEIGHT = 1200, 500

x, y = WIDTH // 2, HEIGHT // 2

vx, vy = -10, -10

BALL_RADIUS = 20

TIMEOUT = 30

x1 = WIDTH // 2

PLATFORM_H = 50

PLATFORM_W = 250

BRICKS_PART = 0.3

ROWS, COLS = 4, 16

points = 0

game_mode = True

root = tkinter. Tk()

canvas = tkinter.Canvas(root, width = WIDTH, height= HEIGHT)

canvas.pack()

ball = canvas.create_oval(x - BALL_RADIUS, y - BALL_RADIUS, x + BALL_RADIUS, y + BALL_RADIUS, fill='yellow')

platform = canvas.create_rectangle(x1 - PLATFORM_W // 2, HEIGHT, x1 + PLATFORM_W // 2, HEIGHT - PLATFORM_H, fill = 'green')

score = canvas.create_text(x1, HEIGHT - PLATFORM_H // 2, text='0', font=('Courier',32, 'bold'),fill = 'white')

brick_w, brick_h = WIDTH / COLS, HEIGHT * BRICKS_PART / ROWS

bricks = []

for row in range(ROWS):

for col in range(COLS):

xb, yb = col * brick_w, row * brick_h

red, green, blue = (random.randint(0,255) for _ in range(3))

color = f'#{red:0>2x}{green:0>2x}{blue:0>2x}'

bricks.append(canvas.create_rectangle(xb, yb, xb + brick_w, yb + brick_h, fill=color))

def game():

global x, y, vx, vy, points, game_mode

x, y = x + vx, y + vy

canvas.coords(ball, x - BALL_RADIUS, y - BALL_RADIUS, x + BALL_RADIUS, y + BALL_RADIUS)

if y <= BALL_RADIUS:

vy = abs(vy)

if x <= BALL_RADIUS or x>= WIDTH - BALL_RADIUS:

vx = -vx

if x1 - PLATFORM_W // 2 <= x <= x1 + PLATFORM_W // 2 and y == HEIGHT - (BALL_RADIUS + PLATFORM_H):

vy = -vy

score_up()

brick =get_brick()

if brick:

vy = -vy

canvas.delete(brick)

bricks.pop(bricks.index(brick))

score_up()

root.update()

if y < (HEIGHT - BALL_RADIUS):

root.after(TIMEOUT, game)

else:

game_mode = False

canvas.create_text(WIDTH // 2, HEIGHT // 2, text='GAME OVER', fill='red', font=(None,50))

def keyboard(event):

global x1

if event.keycode == 37:

x1-=50

if event.keycode == 39:

x1+=50

move_platform_and_score()

def score_up():

global points

points +=1

canvas.itemconfig(score, text=str(points))

def mouse_move(event):

global x1

x1 = event.x

move_platform_and_score()

def move_platform_and_score():

if game_mode:

canvas.coords(platform, x1 - PLATFORM_W // 2, HEIGHT, x1 + PLATFORM_W // 2, HEIGHT - PLATFORM_H)

canvas.coords(score, x1, HEIGHT - PLATFORM_H // 2)

def get_brick():

for brick in bricks:

xb1, yb1, xb2, yb2 = canvas.coords(brick)

if xb1 < x < xb2 and yb1 < y < yb2:

return brick

game()

root.bind('<Key>', keyboard)

canvas.bind('<Motion>', mouse_move)

root.mainloop()

Просмотров работы: 32