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


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

megainformatic - статья Тимонина Андрея - States. Создаем менеджер состояний игры.
[к содержанию] [другие статьи Тимонина Андрея] States. Создаем менеджер состояний игры. автор: Тимонин Андрей дата публикации на сайте Мега Информатик: 18.11.2012 До
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
Описание продукта 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 - статья Тимонина Андрея - Хронология работы программы. Создаем Лог

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

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

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

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

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

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

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

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

подробнее

     
  [Назад] [Все уроки] [Далее]  
     
 

9/06/2008 Воспроизведение в игре музыки в формате XM.

Для воспроизведения используется компонент MiniFMOD 1.78

[downloads:14]

переписанный на Delphi. Успешно используется в примере игры XTropper - http://XProger.mirgames.ru (автор XProger).

 

Рассмотрим поэтапно как реализовано воспроизведение музыки в указанном примере игры.

В модуле XTropper.dpr -

uses {...} MiniFMOD in 'MiniFMOD\MiniFMOD.pas',

l_sound,

между операторами begin и end. -

snd_Init;

Game_Init;

внутри цикла "прокачки" сообщений -

Game_Update;

snd_Update;

 

function WndProc -

Case message of
WM_QUERYENDSESSION, WM_CLOSE:
begin
{...}
snd_deInit;

{...}

if inMenu then
Menu_Message(message, wParam, lParam);

 

 

Старт воспроизведения музыки - в модуле XTropper.dpr -

между begin и end.

Game_Update -

в модуле l_game.pas -

Game_Update -

XMStop

XMPlay

{...}

Game_Init > MenuInt

 

Процедуры GameStart и GameFree -

в модуле l_menu.pas -

Menu_Init, MenuLoad

{...}

procedure Menu_Message -

Game_Start;

 

Обобщим полученную информацию -

Исходный код для работы с MiniFMOD находится в папке MiniFMOD

в этой папке находятся

MiniFMOD.obj - по всей видимости скомпилированный в MSVS файл библиотеки работы с minifmod

MiniFMOD.pas - интерфейсы для использования данной библиотеки

Так и есть в комментариях к файлу MiniFMOD.pas приведено следующее -

{
MiniFMOD 1.7 is a free C library from Fairlight
Technologies (http://www.fmod.org) which allows
you to play .XM files. Compiled into a .OBJ,
it is then possible to use it in any language
that supports OMF .OBJ files.

Here is the Delphi header I made for it.

Twis (June 2004).
}

Т.е. это говорит именно о том, что obj-файл это объектный файл библиотеки minifmod 1.7

Следует отметить, что minifmod не гарантирует 100% точности и идентичности звука XM-файла по сравнению скажем с воспроизведением в плеере или трекере. Об этом свидетельствуют заметки в readme содержащиеся в дистрибутиве midifmod178.rar (85 Кб). Однако на первых порах для игры данная библиотека думаю подойдет.

В реальных тестах и проверках будет ясно. Посмотрим.

 

Продолжим обобщения -

Итак, в папку проекта игры нужно добавить папку MiniFMOD содержащую указанные выше 2 файла.

Далее -

в раздел uses модуля проекта или модуля приложения добавить ссылку на файл MidiFMOD.pas

модуль l_sound ? Суть вопроса: Как происходит воспроизведение музыки при помощи MiniFMOD -

путем вывода результата непосредственно на звуковую карту или же требуется предварительный рендеринг в звуковой буфер DirectSound с последующим выводом полученного через IDirectSound?

Поскольку в модуле l_sound содержится ссылка на MidiFMOD.pas, то скорее всего это 2 вариант, т.е.

при помощи miniFMOD XM файл сначала выводится в выделенный звуковой буфер IDirectSoundBuffer, а затем полученный кусочек уже воспроизводится средствами IDirectSound.

Однако эксперимент с комментированием ссылки на uses MiniFMOD внутри модуля l_sound показывает, что ошибок компиляции не возникает. Следовательно l_sound не использует MiniFMOD и ссылка возможно осталась ошибочно.

Смотрим далее -

 

из-за указанной особенности в uses также нужно добавить использование модуля l_sound.pas написанного XProger

Где-то после создания окна приложения, например в OneTimeSceneInit вызвать процедуры подобные snd_Init и Game_Init.

внутри метода Run -

перед FrameMove или даже внутри FrameMove вызываем процедуры подобные

Game_Update;

snd_Update;

Следует обратить внимание на то, что - в модуле проекта XTropper.dpr между begin и end. -

{...}

while not isQuit do
begin
while PeekMessage(msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;

if not glActive then
WaitMessage
else
begin
Time := GetTimer;
Time_Delta := Time - Time_Old;

flag := false;
for i := 1 to Time_Delta div 20 do
// будет ли влиять указанная периодичность на качество воспроизведения???
begin
Game_Update;
snd_Update;
flag := true;
end;

if flag = true then
Time_Old := Time - Time_Delta mod 20;
// или это не окажет влияния???
Game_Render;
end;
end;

{...}

 

внутри MsgProc -

при WM_DESTROY -

//WM_QUERYENDSESSION, WM_CLOSE: //в модуле проекта XTropper.dpr закрытие происходит по данным сообщениям

Game_Free;
//внутри данной процедуры происходит освобождение объекта XM-плеера - XMFree.

snd_deInit;

 

Это всё что касается создания, обработки и уничтожения объектов воспроизведения музыки.

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

 
Использование модуля l_sound.pas можно пока оставить без изменений, поскольку он выполняет роль фактического плеера, служит для управления звуком (запуск, стоп, громкость и т.п.) на уровне возможностей IDirectSound. Единственно, что поскольку l_sound.pas ориентирован на работу со старыми интерфейсами из модуля DirectX.pas (версии DirectX 6), то в этом плане возможно потребуется его переделка.
 

Game_Init -

Menu_Init -

XMLoadFromFile('data\music\baits.xm');
XMPlay;

Game_Update -

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

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

 

 

Game_Free -

XMStop;
XMFree;

В приложении XTropper воспроизведение музыки управляется через объект меню -

внутри функции обработки сообщений (function WndProc ...) -

Game_Free при сообщениях WM_QUERYENDSESSION, WM_CLOSE, а в конце ее -

if inMenu then
Menu_Message(message, wParam, lParam);

При выборе пункта меню Start - внутри указанной процедуры -

Game_Start;

Game_Start -

XMFree;
XMLoadFromFile('data\music\rave.xm');
XMPlay;

 

Внутри модуля l_menu.pas также есть процедура -

procedure Menu_Load;
begin
XMFree;
XMLoadFromFile('data\music\baits.xm');
XMPlay;
end;

Где и как она вызывается?

Ответ - она вызвается внутри модуля l_input.pas в ответ на нажатие Escape -

procedure KeyOnUp(ID: Byte);
begin
Key[ID] := false;
case ID of
VK_ESCAPE : if not inMenu then
begin
snd_StopAll(0);
Player.ResetKeys;
if Player.Health = 0 then
Menu_Load;
inMenu := true;
end;

end;
end;

 

 

Теперь рассмотрим работу со звуком - использование модуля l_sound.pas в приложении XTropper -

Рассмотрение пока не требуется, т.к. XM воспроизводится без IDirectSound. Однако таким образом не используются все преимущества IDirectSound. В частности отсутствует возможность регулировки громкости музыки.

 

Попробуем использовать возможности MiniFMOD в имеющемся объеме для воспроизведения музыки.

Оказалось достаточно даже следующего способа работы:

Создаем 2 метода -

function TD3DGameApp.InitMusic: HResult;
begin
result := S_OK;

XMLoadFromFile('Media\Music\wizard_morning.xm');
XMPlay;
end;

procedure TD3DGameApp.FreeMusic;
begin
XMStop;
XMFree;
end;

 
И вызываем их где-либо, например в конце CreateSoundObjects и DestroySoundObjects. Всё. При старте приложения сразу же включается музыка.
 

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

XMStop;
XMFree;

XMLoadFromFile('Media\Music\wizard_morning.xm');
XMPlay;

 

Возникает воспрос как регулировать громкость мелодии?

Поскольку miniFMOD скорее всего воспроизводит музыку через средства Windows без DirectSound, то теоретически должна быть возможность регулирования громкости за счет доступа к глобальному регулятору громкости системы. Есть ли такая возможность в модуле MMSystem.pas ?

 

Организация проигрывания различных музыкальных тем в разных частях приложения:

При старте приложения должна играть 1 тема,

При выходе в главное меню - другая

При переходе к игровой сцене - тема для нее.

На стадии загрузки игровой сцены должна загружаться мелодия для нее.

При старте игровой сцены должно включаться воспроизведение.

При выходе из игровой сцены воспроизведение должно останавливаться.

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

Остановка и последующий старт воспроизведения не приводят к моментальному появлению звука. Имеет место некоторая задержка. Это свидетельствует о том, что для моментального включения/отключения мелодии нужно воспользоваться регулировкой громкости.

В модуле MMSystem.pas действительно есть функция - function waveOutSetVolume

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

Можно тажке посмотреть как реализовано управление громкостью в мультимедиа-плеере TMediaPlayer. Это ничего не дает. Там нет таких процедур!!!

Однако читая документацию по waveOutSetVolume, а также просматривая код модулей MMSystem.pas и MiniFMOD.pas обнаруживаем, что

1) громкость регулируется для локального экземпляра звука - значит это то, что нам нужно.

2) экспорты некоторых функций - в модуле MiniFMOD.pas являются сходными из аналогичных модуля MMSystem.pas Это еще раз подтверждает, что музыка воспроизводится минуя DirectSound обращаясь напрямую к системным функциям мультимедиа. Это же дает зацепку о способе регулировки звука при помощи указанного метода.

waveOutSetVolume требует 2-х параметров:

HWAVEOUT hwo, - обработчик устройства воспроизведения
DWORD dwVolume - громкость - младшее слово - левый канал, старшее - правый.

[далее] - о воспроизведении музыки при помощи библиотеки OggVorbis

 
     
  [Назад] [Все уроки] [Далее]  
     
подробнее

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

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



read paper in english

Пришло время перейти к самому главному и интересному вопросу - загрузке и отображению созданной вами в Scene Editor fge игровой сцены.





Содержание

страница 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. Мульти анимация







С прыгающим шариком пока всё ясно. Оставим его ненадолго. Теперь пришло время загрузить нашу игровую сцену.

1) Нам нужно загрузить созданную сцену в наше приложение и показать на экране.

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

Прежде нужно подготовить все файлы ресурсов игровой сцены, как это было описано на странице 2 - Объекты

Уберем все неиспользуемые типы, объекты и изображения - оставим только





simple_game\SceneEditor\Media\textures\environment\desc\scene_editor_types.txt



none; 0;
ai_player; 1;
floor; 2;
test; 3;


simple_game\SceneEditor\Media\textures\environment\desc\scene_editor_texlist.txt



ball; ai_player; ai_player\jump.tga; 64; 128; 0; 0; 4; 8.0f; 14.0f;
floor; floor; floor\floor.jpg; 101; 101; 0; 0; 1; 0.0f; 0.0f;
floor_front; floor; floor\floor_front2.tga; 101; 101; 0; 0; 1; 0.0f; 0.0f;
floor2; floor; floor\floor2.jpg; 101; 101; 0; 0; 1; 0.0f; 0.0f;


Следует иметь в виду, что если Вы меняете файлы типов и ресурсов, то созданные с их использованием файлы сцен уже работать не будут !

Поэтому нужно реализовать новую сцену с новой сборкой прописанных ресурсов - просто повторив уже ранее проделанное на странице 3 - Наложение объектов

Создание новой сцены во fle game engine - в редакторе сцен Scene Editor 1.0.2 - сцена готова

Теперь берем всю папку

simple_game\SceneEditor\Media\textures\environment\





и переносим её в папку ресурсов нашей игры simple_game

simple_game\simple_game\Media\textures\





Папку

simple_game\SceneEditor\scenes\simple_game\



и файл созданной вами игровой сцены, у меня он назывался scene_3.SCN,

переносим в папку

simple_game\SceneEditor\Media\textures\environment\scenes\



Т. е. вот так

simple_game\SceneEditor\Media\textures\environment\scenes\simple_game\scene_1.SCN



Сцену я снова назвал scene_1.SCN, чтобы обозначить, что это будет самая первая (и пока единственная) игровая сцена в нашей игре simple_game.



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

Первое, что Вам потребуется - это модуль GameSceneFile т. е. 2 файла - GameSceneFile.h и GameSceneFile.cpp которые нужно будет добавить в проект.

подключение модуля GameSceneFile в ваш проект

Далее в файл start.h после строки

#include "d_input.h"

нужно добавить строку подключения заголовочного файла данного модуля -

#include "GameSceneFile.h"



Далее в класс нашего приложения CD3DGameApp После строчки

bool m_bShowScreenOptionsBtn;

добавляем новое поле - CGameSceneDataFile* m_pGameSceneDataFile;



Это объект для управления нашей сценой. Все его методы описаны в модуле GameSceneFile представленном, как Вы уже видели 2 файлами - GameSceneFile.h и GameSceneFile.cpp.

Файл GameSceneFile.h - заголовочный - описывает заголовки функций, полей и методов, а файл GameSceneFile.cpp описывает их реализацию на языке программирования c++.



Теперь нужно добавить в модуль нашего приложения start.cpp следующие строки кода



1)

#include "game_sprite.h" //это строка после которой нужно добавить

#define SimpleGameLocation L"\\Media\\textures\\environment\\scenes\\simple_game\\scenes_list.txt" //это строка которую нужно добавить
#define SimpleGameScenesPath L"\\Media\\textures\\environment\\scenes\\simple_game\\" //это строка которую нужно добавить




Вам потребуется еще создать файл scenes_list.txt в папке

simple_game\simple_game\Media\textures\environment\scenes\simple_game\





И поместить в него следующую запись -

scene_1.scn



И больше ничего, никаких переводов строки и пустых строк !!



Далее, там же, в модуле нашего приложения start.cpp

2)

В методе -

CD3DGameApp::CD3DGameApp



CD3DGameApp::CD3DGameApp()
{
//...

m_pSprite = NULL;

} //это строка после которой нужно добавить



//это строки которые нужно добавить

void CD3DGameApp::LoadGameScene()
{
//создание игровой сцены
m_pGameSceneDataFile = new CGameSceneDataFile();
m_pGameSceneDataFile->PreLoadGameTextures();

m_pGameSceneDataFile->LoadLocation(SimpleGameLocation, SimpleGameScenesPath);

//получение границ локации
ScrollGameSceneLeftLimit = -m_pGameSceneDataFile->m_fLocationHScrollLimit;
ScrollGameSceneRightLimit = m_pGameSceneDataFile->m_fLocationHScrollLimit;
//выставление границ локации, доступных из других модулей
g_fScrollGameSceneLeftLimit = ScrollGameSceneLeftLimit;
g_fScrollGameSceneRightLimit = ScrollGameSceneRightLimit;

//загрузка свойств объектов, границ
//LoadGameObjProperties(GameObjectPropertyValue); //поскольку закомментировано, то здесь пока не используется

}





Этот же метод нужно добавить в start.h

в описание класса

class CD3DGameApp

после строки

bool m_bShowScreenOptionsBtn;

добавим -





//игровая сцена

CGameSceneDataFile* m_pGameSceneDataFile;
void LoadGameScene();
//void AfterLoadRestoreLocTextures(); //закомментировано, т. к. пока не требуется
void MovePlayer(int NewMoveState);
void ScrollGameScene();

int m_iOldCurrSceneNum;
int m_iOldCurrSceneInx;

D3DXVECTOR3 m_vFleHeroPos;
void SetHeroLocationPos(DWORD CurrMoveState, LPD3DXVECTOR2 p_v2Pos,
float LocationXOffset);
void AnimGameProcess();
void DrawGameProcess();
bool CanEnterScene();
void LoadGameDataBlock();

}; //вышеуказанные строки надо добавить, а данная уже должна быть - служит для закрытия описания класса CD3DGameApp




Теперь снова возвращаемся к коду модуля start.cpp и добавляем туда

в метод

CD3DGameApp::CreateDeviceObjects

После строки -



g_Snow.Load();



строки -



LoadGameScene();

LoadGameSceneTextures(m_pGameSceneDataFile->m_pTexArray, EnvironmentTexturesPath, TextureFilesList, m_pGameSceneDataFile->m_pSprite);





в методе

CD3DGameApp::RestoreDisplayObjects

добавляем

if ( m_pGameSceneDataFile )
m_pGameSceneDataFile->RestoreGameSceneObjects();

в методе

CD3DGameApp::InvalidateDisplayObjects

добавляем

if ( m_pGameSceneDataFile )
m_pGameSceneDataFile->InvalidateGameSceneObjects();


в методе

CD3DGameApp::DestroyDisplayObjects

добавляем

m_pGameSceneDataFile->FreeGameTextures();
SAFE_DELETE(m_pGameSceneDataFile);



в любом месте, но удобнее в самом конце файла, добавляем -

void CD3DGameApp::MovePlayer(int NewMoveState)
{
/*
Если сцена закрыта - запрет движения
*/

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

//=============================================
//
// Скроллинг игровой сцены
//
//=============================================

void CD3DGameApp::ScrollGameScene()
{

//перед выполнением прокрутки локации запоминаем номер текущей сцены,
if ( m_iOldCurrSceneInx != m_pGameSceneDataFile->m_iCurrentSceneIndex )
{
m_iOldCurrSceneInx = m_pGameSceneDataFile->m_iCurrentSceneIndex;
m_iOldCurrSceneNum = m_pGameSceneDataFile->m_iCurrentSceneNumber;

g_iCurrentSceneNumber = m_pGameSceneDataFile->m_iCurrentSceneNumber;
}

m_pGameSceneDataFile->ScrollLocation( &D3DXVECTOR2(
g_fHorizontalScrollOffset + m_vFleHeroPos.x,
g_fVerticalScrollOffset ), g_fHorizontalScrollOffset);

}
//произвольное положение героя в локации
void CD3DGameApp::SetHeroLocationPos(DWORD CurrMoveState, LPD3DXVECTOR2 p_v2Pos,
float LocationXOffset)
{
m_vFleHeroPos = D3DXVECTOR3(p_v2Pos->x, p_v2Pos->y, 0.8f);

g_fHorizontalScrollOffset = LocationXOffset;
m_pGameSceneDataFile->m_SceneScrollPoint.x = g_fHorizontalScrollOffset;

ScrollGameScene();
}

void CD3DGameApp::AnimGameProcess()
{

m_pGameSceneDataFile->AnimateGameScene(g_fElapsedTime);
m_pGameSceneDataFile->AnimLocation();

MovePlayer(0);
}

void CD3DGameApp::DrawGameProcess()
{
m_pGameSceneDataFile->DrawGameSceneView();
m_pGameSceneDataFile->DrawLocation();
}

bool CD3DGameApp::CanEnterScene()
{
return true; //test
}

void CD3DGameApp::LoadGameDataBlock()
{
m_pGameSceneDataFile->m_SceneScrollPoint.x = g_fHorizontalScrollOffset;

if ( g_fHorizontalScrollOffset != 0.0f )
ScrollGameScene();
}





И наконец вызовы методов

AnimGameProcess();

и

DrawGameProcess();

Отвечающие за анимацию и отображение игровой сцены, нужно добавить в

метод

CD3DGameApp::FrameMove

g_AI_Ball_Sprite.Anim(); //это строка после которой надо добавить

AnimGameProcess();//это строка которую надо добавить



а в метод

CD3DGameApp::Render

case APPSTATE_READY: //это строка после которой надо добавить

DrawGameProcess();//это строка которую надо добавить



Сохраняем изменения, выполняем сборку проекта в MSVS 2005. Если всё ок, то при запуске приложения Вы увидите на экране созданную Вами в Scene Editor fge игровую сцену и прыгающий в ней шарик.

Отображение созданной игровой сцены приложением simple game

Пример данной будущей игры с полным исходным кодом Вы можете получить в составе платной подписки на fle game engine.

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

Оформить подписку на fle game engine -


Стоимость: 600 руб.

Тогда вы получите более свежую версию Scene Editor fge 1.0.2 (на текущий момент) с поддержкой большего количества возможностей: сетка, настройки, скроллинг и другие. В бесплатной версии эти возможности не поддерживаются. подробнее о составе платной подписки.





Для корректной сборки проекта Вам потребуется Microsoft Visual Studio 2005

DirectX SDK August 2008



https://www.microsoft.com/en-us/download/details.aspx?id=23549
Details
Version:
9.27.1734
File Name:
DXSDK_Aug09.exe
Date Published:
9/8/2009
File Size:
553.3 MB




Чтобы проект можно было корректно скомпилировать выполните следующие действия:

Откройте проект из MSVS 2005

в окне Solution Explorer кликните правой кнопкой по узлу start - обозначающему имя проекта
и выберите пункт меню

Properties

свойства проекта

В открывшемся окне start Property Pages слева откройте узел

Configuration properties > C/C++ > General

свойства проекта Additional Include Directories

затем справа в поле Additional Include Directories

вместо ..\..\..\..\..\..\..\Include

вам нужно прописать корректный путь к папке Include, входящей в состав DirectX SDK August 2008.

Т. е. нужно заменить часть строки ..\..\..\..\..\..\..\Include

на абсолютный путь -

например он может быть таким -

C:\DXSDK9_Aug2008\Include

или относительный -

например он может быть таким -

..\..\..\..\..\..\..\..\..\Include



Аналогичное действие Вы должны проделать для Debug сборки - выберите в поле Слева вверху Configuration вариант Debug.

свойства проекта Additional Include Directories для Debug сборки

На вопрос Do you want to save changes you've made in the property pages ?

Отвечайте утвердительно - Да или Yes.



Далее откройте слева узел

Configuration properties > Linker > General

и в поле

Additional Library Directories

измените значение

..\..\..\..\..\..\..\Lib\x86

свойства проекта Additional Library Directories

на соответствующее вашему пути к установленному DXSDK9_Aug2008

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

C:\DXSDK9_Aug2008\Lib\x86

или относительный - зависящий от того где на диске расположена папка проекта simple_game.

Например он может быть таким -

..\..\..\..\..\..\..\..\..\Lib\x86

Указанное действие нужно проделать и для Debug конфигурации проекта.

выберите в поле Слева вверху Configuration вариант Debug.

На вопрос Do you want to save changes you've made in the property pages ?

Отвечайте утвердительно - Да или Yes.



Если всё настроено правильно. Нажимаем ОК.

Далее в поле под главным меню выбираем вариант сборки проекта Debug или Release в панели инструментов

чуть правее от кнопки с зеленым треугольником - означающим запуск проекта из среды MSVS 2005 в режиме отладки.

Далее в главном меню выбираем пункт Build > Clean Solution - чтобы очистить все устаревшие объектные файлы.

Затем Build > Rebuild Solution.

Если всё было настроено правильно и в ходе компиляции вы не получили никаких сообщений об ошибках, то в папке

simple_game\simple_game\

вы найдете созданный файл start.exe, который можно запускать на выполнение.



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



подробнее

     
  Каталог статей  
     
     
     
подробнее

     
 

Здравствуйте уважаемые любители музыки и звука, т.е. меломаны! С появлением компьютеров и мощного программного обеспечения Вы можете без преувеличения создать домашнюю профессиональную студию звукозаписи! Было бы желание и необходимые знания. Если первое у Вас уже есть, то второе, т.е. знания по созданию музыки и звука средствами современных программ на ПК, можно почерпнуть из многих источников, в том числе и на сайте Мега Информатик.

 
     
 
Вся информация представлена в виде уроков. В данной серии уроков описывается работа в программах Sound Forge 7.0 и ModPlug Tracker 1.16 для создания собственных сэмплов и музыки.
   
Урок 1: Синтез звука средствами Sound Forge 7.0 Описываются методы 4-х операторного FM-синтеза сэмплов.
   
Урок 2: Синтез звука (часть 2) Описывается настройка огибающих операторов и другие параметры FM-синтеза сэмплов
   
Урок 3: Введение в трэкерскую музыку. Описываются азы трэкерской музыки, здесь же можно скачать дистрибутив программы ModPlug Tracker 1.16.
   
Урок 4: Введение в Mod Plug Tracker 1.16 Пока мы изучали Impulse Tracker и адаптировали его под WinXP жизнь не стояла на месте. Появился новый удобный трэкер под Windows, сочетающий лучшие черты Impulse, Scream, Fast и Pro Trackers. К тому же, распространяемый бесплатно! Скачать его можно здесь. А познакомиться с созданием музыки в нем можно читая статьи нашего сайта.
   
Урок 5: Первая композиция в Mod Plug Tracker Описывается создание композиции в ModPlug Tracker 1.16
   
Урок 6: Ввод нот Описываются принципы создания композиций в Impulse Tracker 2.14
   
Урок 7: Первая мелодия Более детально раскрываются принципы работы с Impulse Tracker 2.14
   
Урок 8: Настройка параметров сэмплов Показана настройка параметров сэмплов, даются принципы написания профессиональных трэков с живыми примерами.
   
Примеры трэков от автора Представлены оригинальные авторские композиции, написанные в Impulse Tracker 2.14 в 1999-2001 гг. Они может понравятся Вам, а может и нет, но в любом случае - они могут послужить Вам хорошим примером создания композиций. Кроме того, в них Вы найдете сэмплы, которых хватит Вам для создания своих композиций на первых порах в процессе изучения Impulse Tracker!
 
     
 

[Еще уроки >>]

 
     

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

поддержка сайтом нескольких языков модуль multi lang
Ваш сайт развивается, либо Вы задумали создать сайт, который должен иметь копии страниц на нескольких языках.

Как реализовать поставленную задачу ?
Для этих целей предлагаю Вам готовое решение. Это модуль multi lang интегрированный в систему megainformatic cms express files работающую без my sql.

Данный пакет включает megainformatic cms express files + модуль multi lang и поддержку 3х языков: RU, EN, UA. (русский, английский, украинский)

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

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

Приобретая данный продукт - megainformatic cms express files + модуль multi lang

Вы получаете:

- готовый сайт под ключ, устанавливаемый на ваш хостинг за 10 минут путём простого копирования (база данных my sql не требуется);

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

- полностью открытый код на php, возможность интеграции с другими cms (joomla, drupal, wordpress и другие);

- 3 готовых шаблона сайта в комплекте (2 с поддержкой мультиязычности, 1 - без - для примера);

Демонстрация работы системы - http://megainformatic.ru/webprojects/multi_lang

Приобрести комплект megainformatic cms express files + модуль multi lang


Стоимость: 400 руб.

megainformatic live chat
Начать беседу
X
 

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



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


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