Эл Свейгарт - Учим Python, делая крутые игры
Название: | Учим Python, делая крутые игры | |
Автор: | Эл Свейгарт | |
Жанр: | Программирование игр, Python | |
Изадано в серии: | Мировой компьютерный бестселлер | |
Издательство: | Эксмо | |
Год издания: | 2022 | |
ISBN: | 978-5-699-99572-1 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Учим Python, делая крутые игры"
Перед вами — увлекательный самоучитель по языку Python для начинающих. Книга подходит даже читателям с нулевым уровнем. Создавайте собственными руками веселые классические и необычные, продвинутые игры, такие как «Виселица» или «Охотник за сокровищами», — в процессе вы поймете основные принципы программирования и выучите Python играючи!
Читаем онлайн "Учим Python, делая крутые игры". [Страница - 126]
171.
# Отображение прямоугольника игрока.
172.
windowSurface.blit(playerImage, playerRect)
Цикл for в строке 175 отображает спрайт каждого злодея на объекте
windowSurface.
174.
# Отображение каждого злодея.
175.
for b in baddies:
176.
windowSurface.blit(b['surface'], b['rect'])
Каждый элемент в списке baddies — это словарь. Ключи словарей 'surface'
и 'rect' содержат объект Surface с изображением злодея и объект Rect с информацией о его расположении и размере, соответственно.
Теперь, когда на windowSurface все отображено, нам нужно обновить окно,
чтобы игрок мог видеть его содержимое.
178.
pygame.display.update()
Отобразим на экране этот объект Surface, вызвав метод update().
Проверка на столкновения
Код в строке 181 проверяет, столкнулся ли спрайт игрока со спрайтом
какого-либо злодея, путем вызова функции playerHasHitBaddie(). Эта функ-
406
Глава 21
ция вернет значение True, если персонаж игрока столкнулся с любым из злодеев из списка baddies. В противном случае функция возвращает значение
False.
180.
# Проверка, попал ли в игрока какой-либо из злодеев.
181.
if playerHasHitBaddie(playerRect, baddies):
182.
183.
184.
if score > topScore:
topScore = score # установка нового рекорда
break
Если спрайт игрока столкнулся со спрайтом злодея, и если текущее количество очков больше, чем предыдущий рекорд, тогда код в строках 182 и 183
обновляет его. Интерпретатор выходит из игрового цикла в строке 184 и переходит к строке 189, завершая игру.
Во избежание выполнения компьютером игрового цикла настолько быстро, насколько он может (это было бы слишком быстро для игрока, и он бы
сразу же проиграл), мы вызываем метод mainClock.tick(), приостанавливая
игру на очень короткое время:
186.
mainClock.tick(FPS)
Эта пауза будет достаточно длинной, чтобы обеспечить около 40 (значение, хранящееся в переменной FPS) итераций игрового цикла каждую секунду.
Экран окончания игры
Когда игрок проигрывает, воспроизведение фоновой музыки прекращается и исполняется звуковой эффект, свидетельствующий об окончании
игры.
188.
# Отображение игры и вывод надписи 'Игра окончена'.
189.
pygame.mixer.music.stop()
190.
gameOverSound.play()
Код в строке 189 вызывает функцию stop() в модуле pygame.mixer.music для
остановки фоновой музыки. Код в строке 190 вызывает метод play() в объекте Sound, хранящемся в gameOverSound.
Игра «Ловкач» с графикой и звуком
407
Затем код в строках 192 и 193 вызывает функцию drawText(), чтобы вывести текст «ИГРА ОКОНЧЕНА!» на объект windowSurface.
192.
drawText('ИГРА ОКОНЧЕНА!', font, windowSurface, (WINDOWWIDTH / 3), (WINDOWHEIGHT / 3))
193. drawText('Нажмите клавишу для начала новой игры', font, windowSurface, (WINDOWWIDTH / 3) - 120, (WINDOWHEIGHT / 3) + 50)
194.
pygame.display.update()
195.
waitForPlayerToPressKey()
Код в строке 194 вызывает метод update(), чтобы вывести этот объект
Surface на экран. После отображения текста игра останавливается, пока игрок
не нажмет клавишу, вызвав функцию waitForPlayerToPressKey().
После того как игрок нажимает клавишу, интерпретатор выходит из вызова waitForPlayerToPressKey() в строке 195. В зависимости от того, сколько
времени у игрока уходит на то, чтобы нажать клавишу, звуковой эффект
либо продолжает проигрываться, либо нет. Чтобы остановить этот звуковой эффект перед началом новой игры, код в строке 197 вызывает функцию
gameOverSound.stop().
197.
gameOverSound.stop()
Вот наша графическая игра и закончена!
Изменение игры «Ловкач»
Вы можете найти игру слишком простой или слишком сложной. К счастью, ее легко изменить, ведь мы потратили время на использование констант вместо того, чтобы вводить значения напрямую. Теперь все, что
нам нужно сделать для модификации игры — это изменить значения констант.
Например, если вы хотите, чтобы программа в целом выполнялась медленнее, присвойте переменной FPS в строке 8 меньшее значение, например,
20. Это приведет к тому, что спрайты злодеев и игрока будут перемещаться
медленнее, поскольку игровой цикл будет выполняться лишь 20 раз в секунду
вместо 40.
Если хотите замедлить только спрайты злодеев, уменьшите значение переменной BADDIEMAXSPEED, например до 4. Это заставит спрайты всех злодеев перемещаться на количество пикселей в диапазоне от 1 (значение BADDIEMINSPEED)
до 4, а не 1–8, за одну итерацию игрового цикла.
408
Глава 21
Если хотите вместо большого количества маленьких злодеев получить несколько злодеев побольше, увеличьте значение переменной ADDNEWBADDIERATE
до 12, BADDIEMINSIZE до 40, а значение переменной BADDIEMAXSIZE до 80. Теперь
спрайты злодеев добавляются каждые 12 итераций --">
Книги схожие с «Учим Python, делая крутые игры» по жанру, серии, автору или названию:
Эрик Мэтиз - Изучаем Python. Программирование игр, визуализация данных, веб-приложения Жанр: Интернет Серия: Библиотека программиста |
Эл Свейгарт - Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих Жанр: Современные российские издания Год издания: 2017 |
Эл Свейгарт - Большая книга проектов Python Жанр: Python Год издания: 2022 Серия: Библиотека программиста |
Эл Свейгарт - Python. Чистый код для продолжающих Жанр: Python Год издания: 2022 Серия: Библиотека программиста |
Другие книги из серии «Мировой компьютерный бестселлер»:
Дон Джонс - Soft skills для IT-специалистов. Прокачай карьеру и получи работу мечты Жанр: Корпоративная культура Год издания: 2022 Серия: Мировой компьютерный бестселлер |
Антон Спрол - Думай как программист: креативный подход к созданию кода. С++ версия Жанр: C, C++, C# Год издания: 2018 Серия: Мировой компьютерный бестселлер |
Алекс Дж. Гатман, Джордан Голдмейер - Разберись в Data Science. Как освоить науку о данных и научиться думать как эксперт Жанр: Базы данных Год издания: 2023 Серия: Мировой компьютерный бестселлер |
Эл Свейгарт - Учим Python, делая крутые игры Жанр: Программирование игр Год издания: 2022 Серия: Мировой компьютерный бестселлер |