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


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

megainformatic - СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ
                   
подробнее...

Теги

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

Статьи сайта

megainformatic - статья Тимонина Андрея - Flash. Hello world.

megainformatic - статья Тимонина Андрея - Flash. Экспорт SWC библиотеки.

megainformatic - Тимонин Андрей - Несколько слов о себе

megainformatic - статьи Тимонина Андрея - уроки из области веб программирования, создания казуальных игр

megainformatic - статья Тимонина Андрея - Обеспечиваем доступ к объекту из любой точки программы. Singleton

megainformatic - статья Тимонина Андрея - Хронология работы программы. Создаем Лог

megainformatic - статья Тимонина Андрея - Поиск файлов. Получаем список файлов каталога.

megainformatic - статья Тимонина Андрея - Исключения. Создаем класс обработки исключений.

megainformatic - статья Тимонина Андрея - States. Создаем менеджер состояний игры.

megainformatic - статья Тимонина Андрея - Регистрация. Часть 1. Создаем страничку регистрации на сайте.

megainformatic - статья Тимонина Андрея - Регистрация. Часть 2. Создаем обработчик, и заносим информацию о пользователе в Б.Д.

megainformatic - статья Тимонина Андрея - Таймер. Выводим время игры.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем основной класс обработки графики.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем первое приложение.

megainformatic - Что нужно знать для создания сайта ? float - использование в css - стилях

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 2 - пишем свою композицию COLD

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

megainformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта

megainformatic - Что нужно знать для создания сайта ? ASC II Коды символов

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. Энергетический кокон

megainformatic - Модуль галерей для любой cms

megainformatic - Портфолио выполненных проектов сайтов и приложений

megainformatic - Мои Музыкальные Миры - страница 2

megainformatic - megainformatic cms rs

megainformatic - модуль Падающий снег

megainformatic - проект Open Shop

megainformatic - Рисуем красивую девушку всего за 6 шагов

megainformatic - Галерея красивых рисованных девушек

megainformatic - НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ webinformatic К ЖИТЕЛЯМ ПЛАНЕТЫ интернет

megainformatic - Отзывы оставленные пользователями как впечатление о проделанной работе или что-либо понравившееся на сайте

megainformatic - Уроки css - атрибут position

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - СОДЕРЖАНИЕ

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 1 - Обычный день

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

Новогодняя дискотека 2013 на megainformatic точка ru

megainformatic - Программируем на C++ с использованием MFC

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

megainformatic - Как создать игру ? - Пишем игровой движок с нуля

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

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

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

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

 
     
  [содержание] [назад] [страница 5] [далее]  
     
  Введение в 2d-игры - игровое меню  
     
  Внутриигровое меню может быть главным меню, содержащим пункты <Начать игру>, <Продолжить>, <Настройка>, <Авторы>, <Справка>, <Выход> и какие-либо еще. В игровом процессе меню может быть представлено в виде отдельной панели, содержащей какие-либо кнопки - выхода в главное меню, скрытия панелей или еще что-то.  
     
 

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

Т. о. алгоритм создания и использования меню может быть такой -

+ подготовить изображения для элементов меню загрузив их в память;

+ определить прямоугольные области для пунктов меню;

+ определить обработчики пунктов меню - описать функции и их реализации;

Для обработки управления меню посредством мыши используются средства DirectInput8.

 
     
  Загружать и использовать изображения Вы теперь умеете - если нет, то обратитесь к предыдущему уроку, посвященному этой теме.  
     
  Остается разобраться как определяются прямоугольные области и как пишутся обработчики для пунктов меню.  
     
  В игре Веселый Буквоежка, если она уже у Вас установлена, можно заглянуть в подпапку Media\control\mainmenu и открыть файл btn_areas.txt  
     
 

Внутри этого файла описаны строки вида -

new_game; 0.2300f; 0.2633f; 0.9200f; 0.1033f;

 
     
 

что означает -

name; Left; Top; Right; Bottom;

name представляет имя пункта меню - это своего рода комментарий, чтобы было понятно, к чему относятся последующие данные;

Left; Top; Right; Bottom; определяют соответственно левую, верхнюю, правую, нижнюю границы прямоугольной области для пункта меню и описаны в векторной системе координат, где 0.0f, 0.0f - это центр экрана, x = -1.0f левый край экрана, x = 1.0f правый край, y = 1.0f верхняя граница экрана, y = -1.0f нижняя.

 
     
 

Определение этих параметров удобно выполнять используя утилиту Coords2D



Скачать Coords2D -


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

запустите файл Coords2D_setup.exe и распакуйте архив, запустите файл Coords2D.exe

После запуска выберите пункт меню File > Reload. Более подробные инструкции читайте в файле readme.txt

 
     
  Для того, чтобы определить значения Left; Top; Right; Bottom; утилитой Coords2D нужно задать параметры элементов меню в файле tex_list.txt с которым работает утилита ( подробнее см. readme.txt ), далее жмём File > Reload и видим созданное меню на экране. Теперь остается только подводить указатель мыши к участкам на экране и записывать координаты выводимые в левом верхнем углу. Не забудьте еще учесть поправку на координату Y = -0.02f, она вводится, т. к. верхняя часть рабочего пространства утилиты занято строкой меню, чем и обусловлен этот небольшой сдвиг, требующий поправок.  
     
  главное меню игры для проверки утилитой Coords2d  
     
 

Загружаем данные о прямоугольных областях активных элементов меню из текстового файла btn_areas.txt

Я приведу фрагменты кода из класса CGameMainMenu -

 

 
     
 

// данный метод выполняет чтение указанного текстового файла и обрабатывает // // // // указанные в нём параметры меню, занося их в массив CPtrArray, откуда затем к ним // // удобно обращаться как к объектам вида LPBTNAREADESC

void CGameMainMenu::LoadBtnAreas(CPtrArray* pAreasArray,
LPCTSTR txtAreasList)
{
if ( !pAreasArray || !txtAreasList )
// если объект массива не создан или имя файла не // // // определено - возврат
return;

LPBTNAREADESC btnArea;
CString strValue = L"";
CString ParamStr = L"";
TCHAR ControlAreasListFileFullName[MaxPath2] = L"";

// определяем полное имя файла

StringCbCopy(ControlAreasListFileFullName, MaxPath2, AppRootDir);
StringCbCat(ControlAreasListFileFullName, MaxPath2, txtAreasList);

// если файл не существует - ошибка заносится в лог-файл, приложение завершает // // // работу
if ( !PathFileExists(ControlAreasListFileFullName))
{
CString texfile = ControlAreasListFileFullName;
AddLogResult(7, E_FAIL, &texfile);
g_d3dApp.CleanupAndDisplayError( DXUTERR_MEDIANOTFOUND );
PostMessage( g_d3dApp.m_hWndMain, WM_CLOSE, 0, 0 );
return;
}

// открываем указанный файл для чтения, если он пустой - ошибка в лог и выход
CStdioFile textFile(ControlAreasListFileFullName, CFile::modeRead);

if (textFile.GetLength() == 0)
{
g_d3dApp.CleanupAndDisplayError( DXUTERR_MEDIANOTFOUND );
PostMessage( g_d3dApp.m_hWndMain, WM_CLOSE, 0, 0 );
return;
}

// перебираем все строки текстового файла и обрабатываем их, формируя объекты // // // LPBTNAREADESC

// подразумевается жестко определенная структура файла, если она отличается от // // // требуемой - это приведет к непредсказуемым последствиям !

int iItem = 0;
textFile.ReadString(ParamStr);
do
{
int ParamCharPos = 0;
btnArea = new BTNAREADESC;
SecureZeroMemory(btnArea, sizeof(btnArea));

// код функции ReadNextParam вы найдете в ПОЛНОМ ИСХОДНОМ КОДЕ игры

ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Name = new CString();
*btnArea->Name = strValue;

ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Left = (float)_wtof(strValue);

ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Top = (float)_wtof(strValue);

ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Right = (float)_wtof(strValue);

ReadNextParam(&ParamStr, &ParamCharPos, &strValue);
btnArea->Bottom = (float)_wtof(strValue);

pAreasArray->Add((void*)btnArea);

iItem++;
textFile.ReadString(ParamStr);
} while (ParamStr != "");

}

 
     
  Теперь покажем код, который обрабатывает выбор пунктов меню пользователем при помощи мыши -  
     
 

// данный метод должен вызываться в методе FrameMove анимации сцены

void CGameMainMenu::Anim()
{
AnimMenuCursor();

}

 

void CGameMainMenu::AnimMenuCursor()
{

// если приложение не в состоянии показа меню - выход
if ( m_dwState != GAMEMENU_MAIN )
return;

// обработка выбранного пункта меню

m_iSelectedBtnItem = SelectMainMenuItem();
if ( m_iSelectedBtnItem == -1 )
return;

}

 
     
 

int CGameMainMenu::SelectMainMenuItem()
{

// получение идентификатора Area выбранного пункта меню, если указатель вне // // // // пределов меню - возвращается значение -1
int Area = TargetBtnArea(m_pBtnAreasArray, GetCursorVPos());

// обработка данного пункта меню

switch (Area)
{

case MenuItem1: {

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

break;

}

case MenuItem2: {

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

break;

}

case MenuItem3: {

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

break;

}

}

return Area;

}

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

Оставленные комментарии



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


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