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


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

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

Теги

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

Статьи сайта

megainformatic - выпадающее меню на html и css

megainformatic - Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Часто Задаваемые Вопросы

Продукты

Проблемы с кодировками при отображении страниц

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

Система Автоматизации Доставки Электронных Заказов megainformatic cms e-pro

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

webinformatic: Музыкальная страничка трэкера

megainformatic - Создание музыки и звука

webinformatic: Создание музыки и звука: урок 2

megainformatic - Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

megainformatic - Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

megainformatic - Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

megainformatic - Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

megainformatic - Создание музыки в Impulse Tracker 2.14 Первая мелодия

megainformatic - Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

megainformatic - Создание музыки и звука: теория и практика создания трэкерской музыки

megainformatic - Инструкция по оплате услуг средствами WebMoney

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

Написание приложения DirectX9c + MFC в среде MSVS 2005

megainformatic - Создание компьютерных игр на основе DirectX в среде Delphi 6, 7

megainformatic - Создание компьютерных игр на основе DirectX в среде Delphi 6, 7 - Почему избраны DX8 и Delphi ?

megainformatic - Основы IDirectMusic8 в среде Delphi6-7

megainformatic - Основы DirectInput8 в среде Delphi 7

megainformatic - Основы DirectSound8 в среде Delphi6-7

megainformatic - Плагин для 3DS MAX из DX9 SDK

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

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 - МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

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

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

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