Создание игр с Python + Pygame. Урок 4.

Автор Andrei Golubev
Создание игр с Python + Pygame. Урок 4.

всем бобра.

С вами снова я Stalker. Велес и — это четвёртый урок по с прошлого урока вы уже умеете правильно создавать игровые объекты перемещать эти объекты и держать их в рамках экрана, что несомненно важно. Сегодня же я покажу как научить объекты взаимодей друг с другом и — это еще важнее и так погнали перед вами результат нашей работы проделанной за три предыдущих уроках здесь мы создаем игровое пространство окно игровой экран создаем объект из класса.

Спрайт и отображает их на игровом экране.

Конечно мы ещё можем их перемещать, но в нынешнем примере. Они пока, что статичны я задал герою и цели начальные координаты такие чтобы они через центр экрана сверху вниз и наоборот. Давайте теперь. Вернемся способность двигаться мы — это уже проходили поэт данные действия не буду запускаем и видим чтобы объекты двигаются навстречу друг другу от 20, но друг с другом не взаимодействуют теперь-то я и расскажу о том как научить их взаимодействовать между собой самый простой способ — это сравнивать координаты левого верхнего угла каждого объекта этого я написал функцию intercept сразу признаюсь, что автор не я и вот этого сайта функция intersect принимает в качестве параметров X и Y координаты объектов потом сравнивает их наглядно покажу и объясню. Вот сама вот ей передаются X Y координаты. Вот они сравниваются и если условия сравнения выполняет эта функция возвращает единицу. А — это эквивалентно логическому True соответственно в противном случае будет возвращён 0 эквивалентно логическому фальш теперь на картинках перед вами две точки изображающие левый верхние углы наших объектов объекты само собой прямо в нашем случае квадратные теперь пронумеруй объекты для ясности и обозначим точки X1 и X2 не забудем добавить координатные прямые X и Y теперь разбирать сравнение из координат и так как видите первое условие в связке гласит если X1 боль 7 x 2 — 40 то объясняю 40 — — это ширина первого объекта вообще объекта имеют одинаковую ширину. Но если они будут разные — это указываем ширину 1 объект так вот отнимая от x два значения ширины объекта мы по сути сдвигаем точку X2 влево и проверяем они. Будет ли при этом X1 больше чем X 2 — ширина объекта если будет то проверяем второе условие связки которая гласит. Если x-1 меньше чем их 2 + 40 то как видите теперь ширину 1 объект мы прибавляем к значению X2 по сути сдвигая X2 вправо и если X1 окажется меньше то получается, что X1. Находится между этими двумя значениями. А значит по оси объекты пересекаются. Казалось бы этого хватит. Но на самом деле объекты могут пересекаться по их осенью при этом бесконечно далеко по Y оси для этого и сравниваем их координаты по игре k7 сравнение Y координата абсолютно такой же как и сравнение их с поэтому рассматривать его не буду копирую как функция intersect и вставлю в. Канаше программы теперь надо прописать обработчик события столкновений. То есть если функция intersect будет возвращать trudeau героя двигаться вверх и значит он будет двигаться вниз целей запрещается двигаться вниз. Значит она начнет двигаться вверх запускаем и. Воля наши объекты двигаются навстречу друг друга и отталкиваются цель достигнута теперь можно поэкспериментировать. Давайте заставим их двигаться в горизонтальной плоскости для этого изменим их начальные координаты 350 200 i9200 также в условиях замене все Y координаты на их координаты запустим и наши объекты сталкиваются отталкиваться и уходит за экран. Потому, что я не все игры кино X и поменял меняем пропущенные запуск готово всё работает как надо. Ну, что ж друзья на этом урок закончен. С вами был я Stalker. Велес экспериментируйте изобретай Ti и ждите новых. Всем пока.

0 комментариев
0

Читайте также