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

Автор Lyubov Stishevskaya
Создание игр с Python + Pygame. Урок 5.

бодрый день народ и снова с вами Stalker.

Велес А — это очередной выпад уроков по идее. Давайте вспомним. Что мы умеем к этому моменту.

А мы умеем создавать игры в области сдавать игровые объекты перемещать эти объекты держать их в рамках экрана и обнаружили столкновение.

Сегодня же мы. Какие события происходят в приложении и как их использовать все события в поедим. При появлении сразу же добавляются в очередь событий для управления очередью событий предназначен. Эйвон в котором определены некоторые методы для работы с этой самой очередью методов довольно много, но расскажу. Я сегодня только о методе Event Get так его для наших нужд хватит также стоит упомянуть о том, что все события являются объектами. Иван и эти объекты содержит идентификатор типа которые содержат в свойстве Event Type. А вот и список типов событий. И я также не все типы сегодня буду рассматривать, а только те которые нам понадобятся, но обрадую вас подробно модуль. Эван и всё, что с ним связано я поставлю на рассмотрение в одном из следующих выпусков. Итак начнем перед нами традиционно уже результат наших действий с прошлого урока только тут небольшой формата. Если Вы заметили я добавил кое-какие комментарии такими вот комментариями я буду обозначать различные блоки кода чтобы вам было проще ориентироваться сегодня в приложении я добавлю нового участника. Вот такая вот стрелочка изображение её находится в той же директории где наш скрипт. Ну собственно остальные изображение лежат там же так, что вы в курсе переходим кодов как я уже сказал сегодня мы используем кот из предыдущего урока она не весь некоторые блоки из него убрал. Да передвижения героя так как мы будем двигать в ручками и блок обнаруживающий столкновение герои цели так как сегодня герои царь взаимодействуют друг с другом не будут соответственно. Я убрал об так как пользоваться она сегодня не будет так. Теперь давайте внесены некоторые изменения ради удобства а. Конкретно изменим Z1 Z3 потому, что двигаться Z будет уже в плоскости ну и соответственно поменяем начальная координата наших объектов дабы они начинали двигаться из более удобных положений теперь можно приступать к внесению новшества. Я добавляю новый блок с описанием объекта. Стрела сам объект сдаём привычному же способом с помощью класса. Спрайт и задаем свойства Push равное фальш необходимые для определения состояния. Стрелы стрелы в двух состояниях заряжена то есть на начальной позиции или выпущена то есть находится на экране. Долина пишем блок управления героям так как управлять будем клавишами мышкой напишем всё в блоке обработчик событий. Я создаю два блока в нём перемещение героя и события нажатия клавиш — это чтобы никто не запутался между описанием и мышки в блоке события нажатия клавиш пишем условия проверки типа события если тип произошедшего события равен поединки и Down то есть нажатой клавише то соответственно проверяем не то ли самой клавиша нажата. Если да то сделать — это в нашем случае тобот клавиша Left & Right то есть лево и право если нажата клавиша лево и значение их координаты. Герой не меньше 10 то герои перед. Винница влево на тоже самое с клавиши право только в другую сторону. Зачем меньше и больше тут поставлены вы конечно же знаете чтобы объект за рамки экрана даже по нашей воле, а то потеряется ещё. Ну и запустим как эти герои двигается в левом права, но как-то вяло и мне при этом приходится долбить по клавишам ибо он только на один пиксель перемещается, а потом ждёт повторного нажатия попробуем исправить ситуацию методом увеличения шага сделаем его 10 пиксельным и собственно, что глядеть так герой передвигается на 10 пикселей, но потом замирает до следующего нажатие клавиши. Как заставить его двигаться пока нажата клавиша. Да легко вернём на шаг во-первых, а то уж больно. Шустро он двигается будет и внимание главного цикла с помощью функции пайгейм kz repeat поедимка The Trip укажем, что нажатие клавиши надо. Пока она нажато данная функция. Принимает два числовых параметра 1 указывает. Сколько нужно подождать миллисекунда 1 дублирование нажатия — это пригодится например в случае с меню вам надо выбрать какое-либо пункт нажимаете на клавишу и проскакивает. Текучева пунктов ибо нет задержки, а скрипт выполняется довольно быстро. А если будет задержка то успеете отжать клавишу обратно второй параметр указывается. Сколько времени должно проходить между следующими дублирование мы пока нажата клавиша таким образом можно также влиять на скорость перемещаемого объекта, но — это так к слову. Я указал параметры. Е1 видите герой двигается так как ему полагается быстро без промедлений теперь вторым параметром зададим значение 100 видно, что герой начал двигаться сразу, но медленно и теперь первым параметром зададим значение 1100 равно 1 секунде видно, что герой сдвинулся подождал секунду и продолжил движение в нормальном темпе теперь научим героя двигается по оси y для этого напишем проверку нажатии соответствующей клавиши Up & Down, а также проверка выхода за определенные границы по оси Y. Обратите внимание, что герой может подходить к верхней границе до отметки 70 пикселей и не выше так не слишком близко к цели запускаем и результат выйти сам двигается герой и влево вправо и вверх вниз без рывков без задержек.

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

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