ria pc game
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
12 декабря 2018
15:26
Вход Регистрация Забыли пароль ?

ria pc game - история создания проекта
ria pc game История создания проекта. Начало. Рассказывает автор (т. е. я сам). Шел 2009 год, я уже в своем понимании более-менее что-то научился делать. Были выпушены игры road 2 city, donuts 3d (пример игры основанный на примере из directx sdk 8 и переделанный на delphi), ну погоди ! Был начат новый проект, который я назвал Нечто: Необъяснимое. Постепенно создавая его я понял, что о
подробнее...

Теги

создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт

Статьи сайта

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 2

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 3

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 4

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 5

megainformatic - Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 6

Система управления сайтом - megainformatic cms e-shop

Система управления сайтом - megainformatic cms e-shop

Система управления сайтом - megainformatic cms e-shop

megainformatic - Уроки 3ds max - Введение в 3ds max

megainformatic - ГАЛЕРЕЯ 3D-моделей

megainformatic - СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ

megainformatic - Создание макета помещения - этап 2

megainformatic - МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

megainformatic - СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

megainformatic - Моделирование обстановки помещения

megainformatic - Создание модели автомобиля

megainformatic - Создание текстурной развертки для модели автомобиля

megainformatic - Создание анимации вращающихся колес автомобиля

megainformatic - игра Нечто: Необъяснимое и в плену желаний

megainformatic - Основы 3D-анимации, экспорт скелетной анимации

megainformatic - Подготовка модели к использованию скелетной анимации

megainformatic - Продолжаем Создание скелета для данной модели

megainformatic - Построение ирерархических связей между объектами и основы 3d анимирования

megainformatic - Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

megainformatic - Создание модели броневика (Хэд)

megainformatic cms e-mailer

megainformatic cms e-mailer

megainformatic cms e-mailer

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

megainformatic - Путешествие в мир 3d

megainformatic - Путешествие в мир 3d - страница 2

megainformatic - Путешествие в мир 3d - страница 3

megainformatic - Путешествие в мир 3d - страница 4

megainformatic - Путешествие в мир 3d - страница 5

megainformatic - Путешествие в мир 3d - страница 6

megainformatic - Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

megainformatic cms express files

megainformatic cms express files

megainformatic - Уроки Photoshop - Чудеса

megainformatic cms express files - Развертывание сайта на Вашем хостинге

megainformatic - Настольная игра "Веселый Буквоежка"

megainformatic - Уроки delphi directx 8.1

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения.

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения. Страница 2

megainformatic - Урок 2 Создаем и обрабатываем команды меню.

megainformatic - Урок 2 Создаем и обрабатываем команды меню. Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

megainformatic - Урок 4 Построение класса приложения

megainformatic - Урок 4 Построение класса приложения - Страница 2

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

megainformatic - Урок 6 Игровая логика

megainformatic - Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

Creating game on fle game engine - Simple game / Создание игры на fle game engine - Simple game

15. Мульти анимация



read paper in english

В данном уроке мы проведем своего рода быстрый старт - это введение в создание игр в среде fle game engine.





Содержание

страница 1 - Спрайты

страница 2 - Объекты

страница 3 - Наложение объектов

страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении

страница 5 - Отображаем прыгающий шарик

страница 6 - Загрузка игровой сцены

страница 7 - Перемещения игровой сцены

страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены

страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика

страница 10 - Проверка столкновений

страница 11 - Игровой счёт, звуки, музыка

урок #2 страница 1 - Создание новых сцен для игры simple game, расширенная версия simple game extended

13. Скроллинг больших локаций

14. использование переменных в игре на c++ directx 9c

15. Мульти анимация







Прошло совсем немного времени с момента написания урока про Спрайты.

Тема данного урока - изучить как можно использовать в игре не один, а несколько спрайтов. У одного персонажа анимаций может быть несколько: прыжки, хотьба, какие-то иные действия и т. п.

Это есть не что иное как МНОЖЕСТВЕННЫЕ АНИМАЦИИ, поэтому я и назвал урок Мульти анимация.

Мы будем рассматривать как использовать несколько анимаций относящихся к одному и тому же персонажу - в нашем случае - к Зеленому Шарику.



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

Да, вы это справедливо заметили, но не все так просто.

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

Но как быть когда анимацию нужно показать лишь однократно ? Причем важно чтобы она остановилась именно на нужном кадре, а не любом ?

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

Помимо этого, можно коснуться немного реализации логики воспроизведения анимаций. Одни анимации нужно показывать при одних условиях, другие - при иных и все это реализуется функционалом программной части.

Художник может лишь показать на спрайте, что с ним происходит, а задача программиста не только показать созданный спрайт, но и реализовать условия по которым этот спрайт будет отображен в игре. Помимо этого нужно еще и запрограммировать особенности воспроизведения самой анимации: будет ли она (опять же) цикличной или однократной. Может быть она будет реверсивной - воспроизводимой в обратном порядке от конца к началу. И т. п.



Анимация Дразнящего Шарика - на последнем кадре задержка для демонстрации показа как бы однократной анимации



Вот методы, которые нужно объявить в классе CGameSprite, для того, чтобы использовать однократно воспроизводимую анимацию Дразнящего Шарика.

//анимация Дразнящего Шарика (показывает язык)
void Draw_Showing_Tongue();
void Anim_Showing_Tongue();
float m_fShowing_Tongue_Sprite_Frame;

bool m_bAnim_Showing_Tongue_Stopped; //завершилась ли анимация Дразнящего Шарика
void Start_Showing_Tongue_Anim();
void Restart_Showing_Tongue_Anim();


Суть реализации заключается в следующем: при определенном условии - например если в течение 15 секунд подряд шарик ни разу не был пойман в ямку должна быть показана данная анимация - однократно - т. е. показана с начала и с остановкой на последнем кадре.

Метод Draw_Showing_Tongue() отрисовывает текущий кадр анимации шарика.

Anim_Showing_Tongue() - выполняет анимирование, т. е. переключение кадров при изменении счетчика времени.

Поле - m_fShowing_Tongue_Sprite_Frame запоминает текущий кадр анимации и нужно для того, чтобы один и тот же спрайт мог использоваться независимо разными игровыми объектами. Для этого просто каждый игровой объект должен иметь у себя такое поле.

Тогда, перед выполнением анимации игровой объект запоминает текущий кадр спрайта, передает ему свой текущий кадр, выполняет анимацию, затем запоминает на каком кадре он остановился и возвращает спрайту его текущий кадр.

Поле - m_bAnim_Showing_Tongue_Stopped служит для фиксации момента завершения анимационной цепочки. Если цепочка закончилась - то поле получит значение true. Таким образом приложение будет знать, что анимация спрайта закончилась и можно переходить к другим действиям. В моем примере - снова будет отображаться анимация обычного прыгающего шарика.

Ну и наконец метод Start_Showing_Tongue_Anim() используется приложением для запуска анимации. В моем примере - если в течение 15 секунд шарик ни разу не был пойман в ямку, то будет вызван данный метод и запущен процесс показа этой анимации.

Когда анимация закончилась нужно, чтобы при следующем вызове Start_Showing_Tongue_Anim() она снова началась с 0 кадра. Для этого и служит метод Restart_Showing_Tongue_Anim().

Вот собственно и все.

Теперь вы наверное, хотели бы увидеть реализацию все описанных методов.

Пожалуйста, ознакомтесь.


//анимация Дразнящего Шарика (показывает язык)
void CGameSprite::Draw_Showing_Tongue()
{
LPD3D9SPRITE usedSprite = NULL;

int ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == SpriteTexIndex )
ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == ball_jump_red_SpriteTexIndex )
ball_sprite = ball_showing_tongue_red; //для красного шарика используется свой спрайт

usedSprite = GetGameSprite(ball_sprite, g_AI_Ball_Sprite.m_pTextures);

float OldFrame;
if ( usedSprite != NULL )
{
OldFrame = usedSprite->Frame;
usedSprite->Frame = m_fShowing_Tongue_Sprite_Frame;

Vector2Screen(&m_v2VectorPos, &m_v2Pos); //переводим векторные координаты //в пиксельные
usedSprite->m_v2Vector2ScreenPos = m_v2Pos;

//выполняем отрисовку спрайта по указанным координатам и с указанным масштабом usedSprite->Draw2(
m_v2Pos.x,
m_v2Pos.y,
m_vBallZ,
usedSprite->m_Scale.x,
usedSprite->m_Scale.y,
255);

usedSprite->Frame = OldFrame;
}
}

void CGameSprite::Anim_Showing_Tongue()
{
LPD3D9SPRITE usedSprite = NULL;

int ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == SpriteTexIndex )
ball_sprite = ball_showing_tongue;

if ( m_iCurrentSprite == ball_jump_red_SpriteTexIndex )
ball_sprite = ball_showing_tongue_red; //здесь аналогично - для красного шарика свой спрайт

usedSprite = GetGameSprite(ball_sprite, g_AI_Ball_Sprite.m_pTextures);

float OldFrame;

if ( usedSprite != NULL )
{
OldFrame = usedSprite->Frame;
usedSprite->Frame = m_fShowing_Tongue_Sprite_Frame;

usedSprite->FrameMove_StopOnEndFrame(g_fElapsedTime, &m_bAnim_Showing_Tongue_Stopped);

m_fShowing_Tongue_Sprite_Frame = usedSprite->Frame;
usedSprite->Frame = OldFrame;
}
}



void CGameSprite::Start_Showing_Tongue_Anim()
{
m_bAnim_Showing_Tongue_Stopped = false;
m_dwAnimState = BAS_SHOWING_TONGUE; //когда была запущена данная анимация выставляем у объекта //такое состояние
//чтобы знать какой метод использовать для его отрисовки и анимирования }

void CGameSprite::Restart_Showing_Tongue_Anim()
{
m_fShowing_Tongue_Sprite_Frame = 0.0f;
}
На этом все.

[назад] [далее]

megainformatic live chat
Начать беседу
X
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 6,7726