<MyRusakov.ru />

Создание игр на Unreal Engine 5

Создание игр на Unreal Engine 5

Данный курс научит Вас созданию игр на Unreal Engine 5. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.

В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.

Помимо самого курса Вас ждёт ещё 8 бесплатных ценных Бонусов: «Chaos Destruction», «Разработка 2D-игры», «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства», «Создание прототипа RPG с открытым миром» и и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Создание анимации с Python и Pygame

Создание анимации с Python и Pygame

Создание анимации достаточно увлекательное занятие. И Python как нельзя лучше подходит для этого. Фреймворк Pygame уже содержит встроенные методы работы с анимацией.

Немного теории.

Мы будем создавать анимацию с помощью последовательности кадров. Каждый кадр будет взят из общего изображения - атласа спрайтов. При помощи метода subsurface содержащимся в Pygame мы будем делить изображение на части и записывать их в список. Все это будет производиться в цикле.

Скачаем изображение с любым персонажем, например:


Изображение

Создадим файл image_animation.py:


import sys

import pygame
from pygame.constants import QUIT, K_ESCAPE, KEYDOWN

# pygame.constants необходим для создания условия выхода из цикла


# далее создаем функцию my_animation, принимающая следующие аргументы w1, h1 - количество спрайтов в строке и столбце изображения, k - это общее количество кадров в изображении, fps - количество кадров в секунду, name - название и путь к изображению, position - положение анимации на игровом экране.

def my_animation( w1, h1, k, fps, name, position):
    # список для хранения кадров и таймер
    frames = []
    timer = pygame.time.Clock()
    
    # создаем экран и загружаем изображение в переменную sprite, установив методом convert_alpha необходимую прозрачность
    scr = pygame.display.set_mode( ( 800, 800 ), 0, 32 )
    sprite = pygame.image.load( "{0}.png".format(name) ).convert_alpha()
    
    # находим длину, ширину изображения и размеры каждого кадра 
    width, height = sprite.get_size()
    w, h = width/w1, height/h1
    
    # счетчик положения кадра на изображении
    row = 0
    
    # итерация по строкам
    for j in range(int(height/h)):
      # производим итерацию по элементам строки 
      for i in range( int( width / w ) ):
             # добавляем  в список отдельные кадры
             animation_frames.append(image.subsurface(pygame.Rect(i * w, row, w, h ) ) )
      # смещаемся на высоту кадра, т.е. переходим на другую строку
      row += int(h)
    
    # счетчик
    counter = 0
    
    while True:
        # условие выхода из цикла - нажатие клавиши ESCAPE
        for evt in pygame.event.get():
            if evt.type == QUIT or ( evt.type == KEYDOWN and evt.key == K_ESCAPE ) :
                sys.exit()
        # заполняем игровое поле красным цветом и методом blit вырисовываем на поверхности
        scr, c координатами position, вырезанную часть изображения
        scr.fill( ( 255, 0, 0 ) )
        scr.blit( animation_frames[counter], position )
        
        # счетчик используемый как индекс в списке увеличивается до того как не превысит 
        общее количество кадров, после чего цикл повторяется
        counter = ( counter + 1 ) % k
        
        # обновляем экран
        pygame.display.update()
        timer.tick(fps)

if __name__ == "__main__":
    x = float(input("Fps:"))
    my_animation(12, 4, 48, x, "image", (300, 300))

Изображение

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.