В любой игре есть столкновение объектов, и наша не будет исключением
Download 1.83 Mb.
|
В любой игре есть столкновение объектов
В любой игре есть столкновение объектов, и наша не будет исключением. Для определения пересечения двух объектов между собой используется метод colliderect. Метод имеет следующую конструкцию: alien.colliderect(box) Если мы хотим прописать код для того, что будет, если персонаж пересечется с коробкой, то используем проверку: if alien.colliderect(box): # Если персонаж столкнулся с коробкой # Что произойдет при столкновении Давайте наш персонаж при столкновении с коробкой пока что будет просто менять картинку на hurt. После того, как пропишите решение, скопируйте код, его понадобится перенести в следующее задание. Давайте пропишем полноценный проигрыш. В качестве окна game over будем использовать картинку GO, поэтому для начала нам нужно ее подключить: go = Actor("GO") Создадим переменную game_over, изначально она будет равна 0 (мы не проиграли). Как только случится столкновение, то ее значение поменяется на 1. Но есть один очень важный момент: для того, чтобы изменения переменной сохранились, необходимо использовать global. Для этого внутри функции, в которой происходят изменения (в нашем случае - update(dt)) пропишем: global game_over Теперь, если game_over == 1, то рисуем окно проигрыша. А что после проигрыша? Каждый раз закрывать игру и включать заново? Не очень удобно. Давайте пропишем логику перезапуска. Если пользователь нажмет на enter и при этом game_over == 1, то случится перезапуск. Для того, чтобы задать новую позицию объекту, используется pos: alien.pos = (50, 240) Также верните в начальные положения коробку и пчелу. После того, как пропишите решение, скопируйте код, его понадобится перенести в следующее задание. Текст выводится с помощью команды screen.draw.text(), которая конечно же прописывается в функции draw(). Внутри скобок команды может указываться много параметров текста - от размера и цвета текста, до начертания и положения на экране:
Тогда, если мы хотим написать текст белого цвета, размером 24 и расположить его в левом верхнем углу окна: screen.draw.text("Текст", pos=(10, 10), color="white", fontsize = 24) Первым делом указывается сам текст, который вы хотите вывести. Все остальные параметры не являются обязательными и их можно не указывать. Давайте при проигрыше выведем на экран сообщение: “Нажмите Enter”. После того, как пропишите решение, скопируйте код, его понадобится перенести в следующее задание. Теперь давайте добавим подсчет очков и будем выводить его вместо слова “Текст”. Как мы можем узнать, что точно прошли это препятствие и больше с ним не столкнемся? Только когда оно ушло за левую границу и появилось с правой стороны, как новое. Создайте переменную count, которая будет увеличиваться на 1 каждый раз, когда препятствие уходит за край окна. Выводите значение переменной по аналогии с прошлым заданием. Не забудьте прописать global count в функции update(dt) перед тем, как менять ее значение. А также добавьте обнуление count после перезапуска. Download 1.83 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling