Создание игр с Python + Pygame. Урок 8. Анимация.

Автор Maksim Inshakov
Создание игр с Python + Pygame. Урок 8. Анимация.

Всем доброго здоровья и хорошего настроения я в очередной раз вернулся уроком и он вас не разочарует, а так как уже завтра.

Новый год дата выпуска является новогодним и — это мой подарок вам друзьям, что же затягивает с предисловием не буду переходим к делу этому моменту мы много уже умеем перечислять нет смысла. Напомни только что. На прошлом уроке мы научились создавать и использовать стартовое меню сегодня я вам покажу как заставить ожить игровой объект результат лично меня радует потому, что получается что-то красивое и немного волшебное.

Ладно новогодняя.

Атмосфера создал теперь серьёзно. В этом уроке я покажу вам создавать анимированные объекты. Да вы можете сказать, что мы и так создаем движущиеся объекты. Ну — это лишь движущийся они анимированные ведь, что такое анимированные объекты в 2D игре — это последовательно сменяющие друг друга картинки в результате смены этих картинок создается эффект движения такие визуальный обман при этом объект может быть неподвижным, но когда такое объект ещё и движется так совсем красота получается и так о том, что такое анимация я расскажу тебе расскажу об инструментах которые нам понадобится, но о которых я ещё не рассказывал первый инструмент — это функция поедим. Time Clock tick параметр указывает. Сколько кадров в секунду должно проходить в игре сама же функция возвращает количество миллисекунд которые прошли с момента последнего вызова данной функции — это нам пригодится отмерять равные промежутки времени между сменой кадров анимации 2 инструмент — это функция имеешь. лодка которая конвертирует изображение с прозрачными слоями в игре так чтобы эти прозрачные слои прозрачными и оставались. Дело в том, что нам не подойдёт привычной пункт Set Color Key она в данном случае не всегда работает увы объяснять пока не могу опунция которую будем использовать выглядит так поедим. и мы, что плод. convert Alpha соответственно нам придётся рисовать изображение на прозрачном фоне теперь о самом изображение. Как его подготовить изображение должно себе несколько кадров такое изображение называется картой изображение — это карта разбивается на несколько разных кадрах квадратов каждый квадрат — это кадр кадры идут последовательно друг за и представляет собой продолжение предыдущего кадра вот карта изображение которое подготовил я 3 кадра где робот совершает шаги и машет руками кадры расположены в порядке выполнения фон изображения прозрачным и последний инструмент. После загрузки изображения нам придётся его вырезать отдельные кусочки кадры для этого приходится на функция subsurface который указывается начальные координаты вырезаем его изображения и. Сколько нужно взять по ширине и все инструменты и нюансы перечисленные. Далее по теории метод формирования анимации которые я вам покажу. Не мной. Придумано я когда-то давно нашёл описание этого метода и примеры вот на сайте автор данной статьи. Александр прусов в последствии я приспособил этот метод по своей нужде. Надеюсь ругаться по поводу правообладания и патента никто не будет и так. В чём состоит суть мем вот почти тот же код чтобы был статье я его немного переделал и упростил, но он выполняет всё тоже оригинал тут главное. На, что следует обратить внимание — это класс анимейшн класс имеет несколько функций. Первое — это обязательно для любого класса конструктор Def init при создании экземпляра класса конструктору передается параметр справиться по умолчанию равный Non и там по умолчанию равной 100 параметры. Спрайт — это список содержащий изображение кадров будущий Animate a time — это время жизни каждого кадра в конструкторе. Как вы уже знаете создается экземпляр класса то есть объект и ему назначается свойства первые два понятно, что оба. А вот парктайм — это счётчик времени он считает. Сколько времени прошло с кипреем — это свойство указывает. Сколько кадров нужно пропустить и фреймы — это номер карты который надо будет показать функция апдейт принимает параметр DTI обозначающие время которое мы с помощью функции поедим Time Clock так далее самой функции прибавляем — это время к счётчику потом вычисляем. Сколько кадров нужно пролистнуть вычисляется — это следующим образом. Например если время жизни кадров 100мл тайм равен 100. А прошло. Уже 200 миллисекунд Work Time счётчик равен 200 мл то Work Times Daily No Time 2 делим на 100 получится 2 соответственно в результате Escape From равен двум далее проверяем условия. Если проем больше нуля то вычисляем остаток от деления урок. Темнота И присваиваем этот остаток перемены Work Time — это нужно для того чтобы во-первых не потерять миллисекунд потому, что могло пройти не 200 миллисекунд a245e например когда 45 миллисекунд потеряю если не вычислить и не сохранить остаток от деления получится, что кадры меняются через разное время, а также Work Time просто будет постоянно расти пока не завершится программы или не закончится оперативная память компьютера далее прибавляем значение переменной cells From количество кадров которые надо рискнуть и в конце проверяемыми больше или номер текущего кадра чем есть кадров вообще-то. Есть в списке может быть три кадра, а номер уже равен четырём соответственно программа завершится. Саши если не обнулить переменную selfree вдали виден функцию поедим. и. Нет которая инициализирует все загружаемые модули по идее инициалы поедим необязательно она в основном работает как проверка который расскажет вам о неполадках если такие случаться при импорте модулей. Ну я лично никогда не сталкивался с таким поэтому не использую поедим и нет далее создаем окно 40 на 40 и.

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

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