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


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

megainformatic - Воспроизведение файлов в форматах it, xm, s3m, mod - страница 2
        [Назад] [Все уроки] [Далее]
подробнее...

Теги

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

Статьи сайта

модуль слайдера

ТЗ на сайт коллективных покупок

модуль slider

megainformatic cms seo

Поддержка сайтом нескольких языков - модуль multi lang

Поддержка сайтом нескольких языков - модуль multi lang

megainformatic - Моделируем девушку в 3d используя 3ds max - другие статьи сборника статей - обзор

установка нового шаблона в joomla 2.5.4

Описание продукта megainformatic cms social

Описание продукта megainformatic cms social

megainformatic - ТЗ на сайт по аналогии rys-stroi.ru

megainformatic cms groupon

megainformatic - дизайн сайта строительной компании УЛЬТРА-СТРОЙ

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

megainformatic - Выпадающее окно регистрации на сайте

megainformatic - Тестирование подключения к платежной системе с использованием скрипта эмулятора

megainformatic - Модуль для регистрации пользователя на сайте

megainformatic - Код для модуля регистрации пользователя на сайте

megainformatic - Быстрый подсчёт ключевых слов в статье

megainformatic - Модуль подсчёта ключевых слов в статье

megainformatic - Онлайн-сервис для подсчёта статистики ключевых слов

megainformatic - Пишем слайдер на javascript с нуля

megainformatic - Логика работы слайдера на javascript

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob

megainformatic - Пишем свою соц. сеть - модуль предложений для webjob - часть реализации для личного кабинета

megainformatic - Пишем свою соц. сеть - Реализация файлового хранилища предложений в csv-файле

megainformatic - Тестирование подключения к платежной системе ЕДИНЫЙ КОШЕЛЕК (w1.ru) с использованием скрипта эмулятора

megainformatic - Пишем свою cms - шаг 1

megainformatic - Пишем свою cms - шаг 2

megainformatic - Пишем свою cms - шаг 3

megainformatic - бесплатная флеш игра freeway fury 2 - разработчик Serius Games

megainformatic - бесплатные флеш игры сторонних разработчиков

megainformatic - Как я осваивал Flash

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

megainformatic - Как я осваивал Flash - шаг 2 - Основы создания простейших flash - игр

проект портала Идеи Комфорта

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

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

megainformatic - Использование cron, crontab и планировщика задач

megainformatic - Совместное использование jquery и mootools или других js-фреймворков

megainformatic - Модуль content php performer для megainformatic cms

megainformatic - Пишем компактный слайдер

megainformatic - Что нужно знать для создания сайта ?

megainformatic - Что нужно знать для создания сайта ? Глава 2 - Кодировки и DOCTYPE

megainformatic - Что нужно знать для создания сайта ? Глава 3 - Идём дальше - нанизываем новый код - где объявляются стили css и код javascript

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

megainformatic - Что нужно знать для создания сайта ? css - стили

megainformatic - preg_match или Использование регулярных выражений в php

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

megainformatic - статья Тимонина Андрея - Flash. Подготовка к работе.

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

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

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

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

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

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] [далее]  
     
megainformatic live chat Чтобы писать сообщения в чат авторизуйтесь
X
 

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



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


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
















    
Время загрузки: 1,2133