В любой игре есть столкновение объектов, и наша не будет исключением


Download 1.83 Mb.
Sana24.12.2022
Hajmi1.83 Mb.
#1061286
Bog'liq
В любой игре есть столкновение объектов


В любой игре есть столкновение объектов, и наша не будет исключением.

Для определения пересечения двух объектов между собой используется метод 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().


Внутри скобок команды может указываться много параметров текста - от размера и цвета текста, до начертания и положения на экране:

pos

Позиция текста

fontsize

Размер шрифта

bold

Жирный шрифт, для использования нужно написать: bold = True

italic

Курсив, для использования нужно написать: italic = True

underline

Подчеркивание, для использования нужно написать: underline = True

color

Цвет текста

background

Цвет фона текста

fontname

Название шрифта

Тогда, если мы хотим написать текст белого цвета, размером 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