Учим Python, делая крутые игры 2018. Invent your owncomputer gameswith python
Скачать 6.56 Mb.
|
Глава 17. Создание графики .................................................................................319 Установка pygame .......................................................................................................320 Привет, pygame! ..........................................................................................................320 Пример запуска pygame-программы «Привет, мир!» ..........................................321 Исходный код pygame-программы «Привет, мир!» ..............................................322 Импорт модуля pygame .............................................................................................323 Инициализация pygame...............................................................................................324 Настройка окна pygame ...............................................................................................324 Кортежи ................................................................................................................... 325 Объекты поверхности .......................................................................................... 326 Работа с цветом ...........................................................................................................326 Вывод текста в окне pygame .......................................................................................327 Использование шрифтов для оформления текста ....................................... 327 Рендеринг объекта Font ........................................................................................ 328 Настройка местоположения текста с помощью атрибутов Rect ............... 329 Заливка цветом объекта Surface..............................................................................331 Функции рисования pygame ....................................................................................332 Рисование многоугольника ................................................................................ 332 Рисование линии ................................................................................................... 333 Рисование круга ..................................................................................................... 333 Рисование эллипса ................................................................................................ 334 Рисование прямоугольника ................................................................................ 334 Окрашивание пикселей ....................................................................................... 335 Метод blit() для объектов Surface .........................................................................336 Вывод объекта Surface на экран ..............................................................................336 События и игровой цикл ..........................................................................................336 Получение объектов Event ................................................................................... 337 Выход из программы ............................................................................................ 338 Заключение ...................................................................................................................338 Глава 18. Анимированная графика .....................................................................339 Пример запуска игры программы ..........................................................................339 Исходный код программы ........................................................................................339 Перемещение и контроль отскока блоков ............................................................342 Создание констант .....................................................................................................343 Константы для направлений .............................................................................. 344 Константы для цвета ............................................................................................ 345 Создание структуры данных блока ........................................................................345 Оглавление 13 Игровой цикл ..............................................................................................................346 Обработка решения игрока завершить игру ................................................. 346 Перемещение каждого блока .............................................................................. 347 Управление отскакиванием блока ..................................................................... 349 Отображение в окне блоков в новых положениях ....................................... 350 Отображение окна на экране ............................................................................. 350 Заключение ...................................................................................................................351 Глава 19. Обнаружение столкновений ................................................................352 Пример работы программы .....................................................................................353 Исходный код программы ........................................................................................353 Импорт модулей .........................................................................................................356 Использование объекта Clock для управления скоростью работы программы ....................................................................................................................357 Настройка окна и структур данных .......................................................................357 Создание переменных для отслеживания перемещения ..................................359 Обработка событий ....................................................................................................359 Обработка события KEYDOWN ................................................................................ 361 Обработка события KEYUP .................................................................................... 363 Телепортация игрока .................................................................................................364 Добавление новых блоков «еды» ............................................................................364 Перемещение игрока по окну ..................................................................................365 Отображение блока игрока в окне .................................................................... 366 Проверка на столкновения ................................................................................. 366 Отображение блоков «еды» ......................................................................................367 Заключение ...................................................................................................................368 Глава 20. Использование звуков и изображений ..............................................369 Добавление изображений с помощью спрайтов ................................................369 Графические и звуковые файлы ..............................................................................370 Пример запуска игры .................................................................................................371 Исходный код программы ........................................................................................371 Настройка окна и создание структуры данных ..................................................375 Добавление спрайта .............................................................................................. 375 Изменение размера спрайта ............................................................................... 376 Установка музыки и звуков ......................................................................................376 Добавление аудиофайлов .................................................................................... 376 Включение/отключение звука ............................................................................ 377 Отображение спрайта игрока в окне .....................................................................378 Проверка на столкновения.......................................................................................378 Отображение спрайтов вишен в окне ...................................................................379 Заключение ...................................................................................................................380 Глава 21. Игра «Ловкач» с графикой и звуком ...................................................381 Обзор основных типов данных pygame ...................................................................381 Пример запуска игры «Ловкач» ..............................................................................383 Исходный код игры «Ловкач» ..................................................................................383 Импорт модулей .........................................................................................................388 Создание констант .....................................................................................................389 Определение функций ...............................................................................................390 Завершение игры и добавление паузы ............................................................. 390 Отслеживание столкновений со злодеями ..................................................... 391 Отображение текста в окне................................................................................. 392 Инициализация pygame и настройка окна ..........................................................393 Установка шрифтов, изображений и звуков ........................................................394 Отображение начального экрана ............................................................................395 Начало игры .................................................................................................................396 Игровой цикл ..............................................................................................................398 Обработка событий клавиатуры ....................................................................... 398 Обработка событий мыши .................................................................................. 400 Добавление новых злодеев .......................................................................................401 Перемещение спрайтов игрока и злодеев .............................................................402 Реализация чит-кодов ...............................................................................................404 Удаление спрайтов злодеев.......................................................................................404 Отображение окна ......................................................................................................405 Отображение очков игрока ................................................................................ 405 Отображение спрайтов игрока и злодеев ....................................................... 406 Проверка на столкновения.......................................................................................406 Экран окончания игры ..............................................................................................407 Изменение игры «Ловкач» ........................................................................................408 Заключение ...................................................................................................................409 Предметный указатель .........................................................................................410 ОБ АВТОРЕ Эл Свейгарт — разработчик программного обеспечения, автор техниче- ских книг и человек, у которого всегда при себе полотенце*. Он написал не- сколько книг по программированию для начинающих, в том числе «Програм- мирование для детей. Делай игры и учи язык Scratch!». Его книги на языке оригинала можно бесплатно прочитать на сайте www.inventwithpython.com. * В оригинале: «…who really knows where his towel is» — отсылка к роману «Автосто- пом по галактике» (1979 г.) Дугласа Адамса, британского писателя, оказавшего влияние на культовое для программистов на Python комедийное шоу «Летающий цирк Монти Пайтона» (Monty Python's Flying Circus). — Примеч. ред. 16 Введение Посвящается Каро ВВЕДЕНИЕ Когда я в детстве впервые запустил ком- пьютерную игру, меня моментально за- тянуло. Но я хотел не только играть в игры, я хотел их создавать. Я нашел книгу, похожую на эту, которая научила меня писать свои первые программы и игры. Это было просто и весело. Первые игры, которые я делал, были простыми и похожими на показанные в этой книге. Они не были такими вычурными, как бестселлеры Nintendo, которые мне покупали родители, но это были игры, которые я сделал сам. Сейчас, став совершеннолетним, я все еще получаю удовольствие от про- граммирования и мне за это еще и платят. Но даже если вы не хотите связы- вать с этим жизнь, программирование — полезный и веселый навык. Он тре- нирует ваш мозг мыслить логически, строить планы и пересматривать свои решения каждый раз, как вы обнаружите ошибку в коде. Многие книги, посвященные программированию для начинающих, по- падают под две категории. Первая категория включает книги, которые обу- чают не столь программированию, сколько «программному обеспечению для создания игр» или языкам, которые упрощаются настолько, что предмет изучения уже и нельзя назвать программированием. Вторая категория состо- ит из книг, которые обучают программированию подобно математическому учебнику — со всеми принципами и понятиями и парочкой реальных прило- жений в пример читателю. Эта книга прибегает к иному подходу и учит вас, как программировать с помощью создания видеоигр. Я показываю исходный код для игр и напротив объясняю принцип программирования из примера. Такой подход был ключевым для меня, когда я учился программированию. Введение 17 Чем больше я узнавал, как работают программы, созданные другими людьми, тем больше идей ко мне приходило касательно моих собственных. Все, что вам нужно — компьютер, бесплатное программное обеспечение, которое называется интерпретатор Python и эта книга. Как только вы узнае- те, как создавать игры из этой книги, вы сможете разрабатывать игры сами. Компьютеры — поразительные механизмы и обучение программирова- нию не такое неподъемное, как сначала кажется. Компьютерная программа — это набор инструкций, которые компьютер может понять, точно так же, как книга с историями — это куча предложений, которые может понять читатель. Чтобы создать инструкцию, вы пишете программу на языке, который ком- пьютер понимает. Эта книга научит вас языку программирования Python. Су- ществует множество других языков программирования, которые вы можете освоить, например, BASIC, Java, JavaScript, PHP и C++. В детстве я выучил BASIC, но более новые языки программирования типа Python учатся гораздо легче. Python также используется профессиональными программистами в работе и любителями в качестве хобби. Вдобавок он аб- солютно бесплатный для установки и использования — вам всего-то нужен Интернет, чтобы скачать его. Поскольку видеоигры — ничто иное как компьютерные программы, они также состоят из инструкций. Игры, которые вы создадите благодаря этой книге, будут проще сравнительно с играми для Xbox, Paystation или Nintendo. В этих играх не будет невероятной графики, потому что они рассчитаны на то, чтобы обучить вас основам кодинга. Они преднамеренно просты, поэто- му вы можете сосредоточиться на обучении программированию. Игры не должны быть сложными, чтобы быть интересными! Для кого эта книга? Программирование — это не сложно, сложнее найти материалы, которые обучат вас делать интересные вещи с его помощью. Другие книги предостав- ляют слишком много того, что начинающему кодеру не понадобится. Эта книга научит вас программировать собственные игры; вы получите полез- ный опыт и интересные видеоигры, которые сможете продемонстрировать. Эта книга для: • абсолютных новичков, которые хотят обучиться программированию, даже не имея при этом предыдущего опыта; • детей и подростков, которые хотят научиться программированию, создавая игры; • взрослых и учителей, которые хотят освоить программирование; • кого угодно, от мала до велика, кто хочет научиться программиро- вать, изучая профессиональный язык программирования. 18 Введение О книге В большинстве разделов этой книги вводится и объясняется по одному но- вому игровому проекту. В некоторых главах рассматриваются дополнительные полезные темы, такие как отладка. Новые концепции программирования по мере применения их в играх и главы предназначены для чтения по порядку. Вот краткое изложение того, что вы найдете в каждой главе: • Глава 1 «Интерактивная среда разработки» пошагово объясняет, как интерактивная среда разработки Python может использоваться для экспериментов с кодом. • Глава 2 «Написание программ» объясняет, как писать полноценные программы в редакторе файлов Python. • В главе 3 «Игра “Угадай число”» вы запрограммируете первую игру в этой книге, в которой попросите игрока угадать секретное число, а затем дадите подсказки относительно того, насколько его предпо- ложение близко или далеко от правильного ответа. • В главе 4 «Программа-шутник» вы напишете простую программу, ко- торая рассказывает пользователю несколько шуток. • В главе 5 «Игра “Царство драконов”» вы запрограммируете игру для угадывания, в которой игрок должен выбрать между двумя пещера- ми: в одной живет дружелюбный дракон, а в другой — голодный. • Глава 6 «Использование отладчика» описывает способы использова- ния отладчика для устранения неполадок в коде. • Глава 7 «Проектирование игры “Виселица” с помощью блок-схем» объясняет, как блок-схемы помогают в планировании более длинных программ, таких как игра «Виселица». • В главе 8 «Написание кода игры “Виселица”» вы напишете игру «Висе- лица», опираясь на блок-схему из главы 7. • Глава 9 «Доработка игры “Виселица”» расширяет игру «Виселица» но- выми функциями, используя базу данных словаря Python. • В главе 10 «Игра “Крестики-нолики”» вы узнаете, как писать игру типа «человек против компьютера», использующую искусственный интеллект. • В главе 11 «Дедуктивная игра “Холодно-горячо”» вы узнаете, как сде- лать дедуктивную игру, в которой игрок должен угадать секретные числа на основе подсказок. • Глава 12 «Декартова система координат» объясняет декартову систе- му координат, которую вы позже будете использовать в играх. • В главе 13 «Игра “Охотник за сокровищами”» вы узнаете, как напи- сать игру, в которой игрок прочесывает океан в поисках потерянных сундуков с сокровищами. |