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


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
18 февраля 2019 4:59
Вход Регистрация Забыли пароль ?

Проблемы с кодировками при отображении страниц
        Другие уроки можно посмотреть в разделе Статьи  
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Веселый Буквоежка - онлайн комикс - страница 11

megainformatic - Веселый Буквоежка - онлайн комикс - страница 12

megainformatic - Веселый Буквоежка - онлайн комикс - страница 13

megainformatic - Веселый Буквоежка - онлайн комикс - страница 14

megainformatic - Веселый Буквоежка - онлайн комикс - страница 15

megainformatic - Веселый Буквоежка - онлайн комикс - страница 16

megainformatic - Веселый Буквоежка - онлайн комикс - страница 17

megainformatic - Веселый Буквоежка - онлайн комикс - страница 18

megainformatic - Веселый Буквоежка - онлайн комикс - страница 19

megainformatic - Веселый Буквоежка - онлайн комикс - страница 20

megainformatic - Веселый Буквоежка - онлайн комикс - страница 21

megainformatic - Веселый Буквоежка - онлайн комикс - страница 22

megainformatic - Веселый Буквоежка - онлайн комикс - страница 23

megainformatic - Эмулятор ZX-Spectrum, БК-0010.01 и их работа в эмуляторе DosBox 0.74

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 1

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 2

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 3

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 4

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 5

megainformatic - первый независимый онлайн-журнал комиксов ККК Костя Коробкин Комикс номер 1 март 2016

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 6

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 7

megainformatic - Эмулятор БК-0010.01 версия 2.6 для Windows 9x/Me/2000/XP автор Юрий Калмыков 2002 год

megainformatic - api получения готового решения для решения различных задач возникающих при создании сайта

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 8

роман Eternity Вечность - автор Синицин Андрей megainformatic

роман Eternity Вечность - автор Синицин Андрей megainformatic - страница 2

роман Eternity Вечность - автор Синицин Андрей megainformatic - страница 3

роман Eternity Вечность - автор Синицин Андрей megainformatic - Windows Sockets 2, ping, Windows SDK 7, чем открыть hxs файл - страница 4

megainformatic - Размещение Вашей рекламы на нашем сайте

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 9

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 10

роман Eternity Вечность - автор Синицин Андрей megainformatic - В чём отличие в применении символов & и * в языке c++ ? также продолжаем изучать Windows Sockets 2 и пример simple - страница 5

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 11

megainformatic - игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 12

роман Eternity - страница 6 + решение по анимации закрывающихся дверей лифта

megainformatic - Сообщить об ошибке

Balls on Lift Table of Records / Шарики на лифте Таблица рекордов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 13

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Рисуем шарик / How make the game - series of lessons - draw ball

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Содержание / How make the game - series of lessons - Index

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Разные шарики / How make the game - series of lessons - Different balls

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Анимация прыжков шарика / How make the game - series of lessons - Animation ball jumps

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Создание фона заднего плана / How make the game - series of lessons - Creating background for back plane

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Вставка созданной графики, звуков и музыки в игру - Inserting created graphics, sounds and music in the game.

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Развитие проекта fle game engine

Бинарная философия / Binary Philosofy

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 14

Вакансии

Коллекция php скриптов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 15

megainformatic - Приключения Кости Коробкина - В гостях у тёти Светы часть 1 - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

подробнее

Создание сайта для бизнеса - Миф или реальность ?

Сегодня мы с Вами поговорим на тему создания бизнес сайта или сайта для бизнеса.

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

Для чего создаются сайты ?

Можно ответить так: для рекламы, престижа, как дань моде или для решения определенных задач.

Каких задач ?

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

Каким бы ни был Ваш сайт, он требует чтобы его постоянно обновляли, развивали и поддерживали. Если этого не делать постоянно, ежедневно и даже ежечасно и ежеминутно, то пользователи быстро разочаруются в нём.

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

Существует ли какой-то секрет успеха при создании сайта ?

Разумеется да. Но помните одно - у каждого он уникален и никто с Вами им не поделится, пока Вы не откроете свой собственный.

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

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

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

Что я могу посоветовать тем из Вас, кто решил заняться созданием сайта сам или привлечь для этого специалистов ?

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

На первое время нужно обзавестить хотя бы такими вещами:

- Набор разработчика DENWER Дмитрия Котерова;

- Программа для работы по FTP - FileZilla;

- Редактор текста и кода - Notepad++;

- Информационные сайты и материалы по php, my sql, html, css, javascript, flash, работе в photoshop;

- Статьи на различную тематику посвященную сайтам, их созданию и продвижению;

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

Этот список еще далеко не полон.

Желаю Вам удачи на ниве создания сайтов !

подробнее

     
  Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)  
     
  модель коммандного центраСкачать готовую модель вы можете кликнув по картинке.  
     
  Этот объемистый урок расскажет Вам как научиться создавать нечто подобное: всем известно, что вышла игра StarCraft 2 компании Blizzard. Об этой игре ходят легенды. Но не дожидаясь когда вам удастся засесть за игру, а также для того, чтобы пополнить свои навыки и умения попробуем вообразить себя "крутым дизайнером" (прямо как из Blizzard) и попробовать создать модель и текстуру для коммандного центра из StarCraft 2.  
     
 

Часть 4

Надеюсь у Вас всё получилось. Осталось совсем немного. Сейчас мы попробуем с Вами создать крестообразную часть крыши.

 
     
   
     
  В её создании нет ничего сложного и сейчас Вы в этом сами убедитесь.  
     
   
     
  Как видите всё начинается с обыкновенного бокса, нужных размеров и с нужным количеством сегментов. Далее бокс преобразуется в editable mesh, выделяются нужные грани и производится последовательность выдавливаний приводящая к созданию того, что и даст крестообразную часть крыши.  
     
  Единственную сложность могут вызвать выступающие элементы около выхода Коммандного Центра -  
     
   
     
 

Для их выдавливания необходимо иметь 5 граней, а на рисунке имеется только 4. Эту проблему можно решить следующими способами:

- возвратом к созданию бокса с добавлением еще одного дополнительного сегмента;

- выполнением разрезания (Cut) граней для формирования новых сегментов;

- выполнением выдавливания из двух смежных граней с использованием Bevel c последующей коррекцией положения вершин/ребер;

 
     
  Обратившись к рисункам и хорошенько поэкспериментировав, думаю, Вы справитесь с поставленной задачей и сумеете создать крестообразную часть крыши со всеми необходимыми деталями.  
     
  Следует заметить, что формировать крышу, чтобы она соответствовала размерам и форме, лучше сразу по месту, т.е. расположив ее над готовым основанием Коммандного Центра.  
     
  И наконец осталось Вам сформировать всего 2 элемента - лесенку у выхода и башенку -  
     
   
     
  И опять всё достаточно просто - башенка это цилиндр преобразованый в editable mesh и видоизмененный путем 3-х последовательных выдавливаний, а лесенка - это бокс, у которого были растянуты вершины в его основании.  
     
  После того как Вы закончите Вам остается только правильно разместить все созданные детали и Вы получите модель Коммандного Центра.  
     
  Замечание: для выравнивания объектов друг относительно друга удобно пользоваться инструментом - Align (выравнивание)  
     
   
     
  Для его использования нужно выделить выравниваемые объекты, нажать на панели инструментов кнопку Align и указать объект относительно которого производить выравнивание. В открывшемся диалоговом окне указывается по каким осям и относительно чего центрировать выделенные объекты.  
     
  Так например, для расположения какой-то детали относительно центра Основания Коммандного Центра нужно сначала центрировать этот объект относительно Основания при помощи Align, а уже затем сместить на нужное расстояние.  
     
  [назад] [далее мы поговорим об аспектах создания текстурной развертки]  
     
подробнее

     
  Веселый Буквоежка - игра  
     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
  [содержание] [назад] [страница 6] [далее]  
     
  Введение в 2d-игры - анимация и движение героя  
     
  Как нарисовать анимацию подробно описано в статье Рисуем волка из мультфильма  
     
  Как Выглядит анимированный персонаж Вы можете увидеть в деле скачав игру Веселый Буквоежка, либо в утилите Coords2D



Скачать Coords2D -

Размер sfx-архива: 36 Mb. Также содержит много примеров спрайтов и других
изображений из проекта fle, bol и др.

 
     
 

Осталось выяснить:

- как программировать анимированные спрайты;

- как перемещать их по экрану в ответ на действия пользователя;

 
     
  Если взять за основу ПОЛНЫЙ ИСХОДНЫЙ КОД игры, то всё, что связано с анимацией героя Вы найдете в модулях AdventureGame.h и .cpp  
     
  Так, например, метод void CAdventure::Anim(), вызываемый приложением, ответственен за всю анимацию игровой сцены, а метод void CAdventure::Draw() за её отрисовку.  
     
 

Поэтому искать нужный код следует внутри этих методов.

Последовательно просмотрев методы void CAdventure::Anim() > AnimState > AnimGameProcess

вы увидите вызов функции HeroMoveAnim

- это и есть тот самый метод анимации главного героя.

 
     
 

В ответ на нажатие клавиш стрелок Веселый Буквоежка перемещается по игровой сцене.

Вот кусок кода выполняющий рассчет координат x и y героя

 
     
 

float MoveAngle = 0.0f; // направление движения - задается углом в радианах
int SpriteIndex = 1;
bool Mirrored = false;

// в зависимости от направления движения определяемого нажатой клавишей, задаются // начальные параметры для рассчетов

switch ( m_dwFleHeroMoveState )
{
case FleHeroMoveState_MoveLeft: {
MoveAngle = D3DX_PI;
SpriteIndex = FleHero_MoveLeft;

m_bFleHeroLookLeft = true;
break;
}

case FleHeroMoveState_MoveDown: {

MoveAngle = -D3DX_PI * 0.75f;

SpriteIndex = FleHero_MoveRight;
Mirrored = true;

m_bFleHeroLookLeft = true;
break;
}

case FleHeroMoveState_MoveRight: {
MoveAngle = 0.0f;
SpriteIndex = FleHero_MoveRight;

m_bFleHeroLookLeft = false;
break;
}

case FleHeroMoveState_MoveUp: {

MoveAngle = D3DX_PI * 0.25f;

SpriteIndex = FleHero_MoveLeft;
Mirrored = true;

m_bFleHeroLookLeft = false;
break;
}

}

float x_step = 0.0f;
float y_step = 0.0f;

// вычисляем шаг перемещений по x и по y, если нет ограничений движению
x_step = FleHero_MoveSpeedX * g_fElapsedTime * g_fFleHero_MoveSpeed_Decrease;

float OldFleHeroXPos = m_vFleHeroPos.x;

m_vFleHeroPos.x += x_step * (float)cos(MoveAngle);

if ( m_vFleHeroPos.x <= SceneMoveLimitLeft )

m_vFleHeroPos.x = OldFleHeroXPos;

if ( m_vFleHeroPos.x >= SceneMoveLimitRight )

m_vFleHeroPos.x = OldFleHeroXPos;

g_fFleHeroPos_x = m_vFleHeroPos.x;

y_step = FleHero_MoveSpeedY * g_fElapsedTime * g_fFleHero_MoveSpeed_Decrease;

float OldFleHeroYPos = m_vFleHeroPos.y;

m_vFleHeroPos.y += y_step * (float)sin(MoveAngle);

if ( m_vFleHeroPos.y <= SceneMoveLimitDown )

m_vFleHeroPos.y = OldFleHeroYPos;

if ( m_vFleHeroPos.y >= SceneMoveLimitUp )

m_vFleHeroPos.y = OldFleHeroYPos;



TestHeroCollision();

/* Если препятствие слева и герой пытается идти в этом же направлении -
запрет движения
*/

if ( m_CollSide.fromRight && m_dwFleHeroMoveState == FleHeroMoveState_MoveRight )
{
m_vFleHeroPos.x = m_v2FleHeroPosBeforeCollision.x;
g_fFleHeroPos_x = m_vFleHeroPos.x;
x_step = 0.0f;
}
else {
if ( m_CollSide.fromLeft && m_dwFleHeroMoveState == FleHeroMoveState_MoveLeft )
{
m_vFleHeroPos.x = m_v2FleHeroPosBeforeCollision.x;
g_fFleHeroPos_x = m_vFleHeroPos.x;
x_step = 0.0f;
}
}

if ( m_CollSide.fromTop && m_dwFleHeroMoveState == FleHeroMoveState_MoveUp )
{
m_vFleHeroPos.y = m_v2FleHeroPosBeforeCollision.y;
y_step = 0.0f;
}
else {
if ( m_CollSide.fromBottom && m_dwFleHeroMoveState == FleHeroMoveState_MoveDown )
{
m_vFleHeroPos.y = m_v2FleHeroPosBeforeCollision.y;
y_step = 0.0f;
}
}


/*
Если сцена закрыта - запрет движения
*/


m_pGameSceneDataFile->m_fHeroXPosInLocation = g_fHorizontalScrollOffset;
m_pGameSceneDataFile->CalcCurrentSceneNumber();
if ( !CanEnterScene() )
{
x_step = 0.0f;
}


LPD3D9SPRITE spr = GetGameSprite( SpriteIndex, m_pTexArray );

//перемещение по Z сопряжено с перемещениями по Y
m_vFleHeroPos.z = CalcFleHeroZ(m_vFleHeroPos.y + FleHero_YCorrectorForZ,
spr->m_Scale.y, spr->Height);

if ( x_step != 0.0f || y_step != 0.0f )
{
CalcFleHeroScrPos2(Mirrored);

//для учета в других анимациях
m_bFleHeroXMirrored = Mirrored;
}

AnimGameSprite(SpriteIndex, -1, m_pTexArray);

 
     
 

Собственно рисование анимированного персонажа выглядит намного проще -

void CAdventure::DrawStateOfHero()
{

switch ( m_dwFleHeroMoveState )
{

case FleHeroMoveState_MoveLeft: {
DrawFleHero(FleHero_MoveLeft);
break;
}

case FleHeroMoveState_MoveDown: {

DrawFleHeroXMirror(FleHero_MoveRight);
break;
}

case FleHeroMoveState_MoveRight: {
DrawFleHero(FleHero_MoveRight);
break;
}

case FleHeroMoveState_MoveUp: {

DrawFleHeroXMirror(FleHero_MoveLeft);
break;
}

}

}

 
     
  Вопросы связанные со скроллингом игровой сцены, столкновениями, атаками героя, выбором и использованием игровых предметов и многие другие нюансы уже также решены и Вам не нужно ломать над ними голову - достаточно заказать ПОЛНЫЙ ИСХОДНЫЙ КОД игры Веселый Буквоежка  
     
     
  Если у Вас всё же остались вопросы - не стесняйтесь задавать их на форуме или по e-mail.  
     
  [содержание] [назад] [страница 6] [далее]  
     
подробнее

     
     
 

Система Управления Электронным Магазином - megainformatic cms e-shop

Позволит вам создать сайт + электронный магазин, с подключением к платежным системам WebMoney, Robokassa, Единый кошелек, Qiwi, а также возможностью принимать yandex.деньги, оплату по квитаниции и банковской карте.

Также включает в себя Систему рассылки e-mailer и систему партнерских программ e-pro. Система компактна, надежна и проверена временем. Сайт megainformatic.ru работает на этой же системе, так что наблюдая работу сайта megainformatic.ru Вы можете судить о возможностях megainformatic cms e-shop

 
     
 
megainformatic cms e-shop
Стоимость: 1000 руб.


 
     
 

Демонстрация работы системы - megainformatic.ru/eshop

Документация по работе системы - megainformatic.ru/eshop

 
     
 

ОСОБЕННОСТИ СИСТЕМЫ

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

- Написана на языке php. Для работы сайта использует базы данных mysql и файлы.

- Подробное документирование возможностей;

- Прозрачность использования и открытый исходный код;

 
     
 

megainformatic cms e-shop - это -

- простой код для быстрого создания работающего сайта и интернет-магазина 2 в 1;

- поддержка различных шаблонов;

- поддержка различных модулей;

- открытость для дополнений и расширений;

- готовые скрипты подключения к платежным системам;

- встроенные модули: e-pro, случайная новость, система рассылки и импорта списков пользователей, счётчик, карта сайта, поиск по сайту, административный раздел по управлению системой, сменные шаблоны;

 
     
 

Как устанавливается система ?

1) Выгружаете на хостинг все файлы из дистрибутива;

2) Создаете на хостинге базу данных my sql с содержимым из дистрибутива;

3) Редактируете файл конфигурации;

4) Система готова к работе.

 
     
 

Как работает система ?

1) Вы добавляете на сайт нужные страницы с описанием товаров и статьи;

2) Добавляете на сайт нужные товары;

3) Настраиваете приём оплаты;

4) Ваш сайт готов к продажам товаров.

 
     
     
     
 

Приобретая megainformatic cms e-shop Вы получаете:

- Полноценную CMS для создания и управления вашим сайтом.

- Система позволит вам построить информационный сайт + интернет-магазин и запустить его в работу.

- Вы получаете также встроенную систему e-pro для обработки заказов по партнерским программам для продаж ваших товаров в других интернет-магазинах.

 
     
 

 

Спасибо за внимание и желаю Вам успехов !!!

 
     
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 Размещение баннерной рекламы у нас
Время загрузки: 0,9757