megainformatic - Разработка flash-приложения для сайта: онлайн примерочная
Разработка flash-приложения для сайта: онлайн примерочная
[к содержанию]
Сайты построенные на php не обладают такой степенью интерактивности, какая свойственна настольным приложениям. Конечно если использовать php вкупе
с технологией ajax, то можно добиться интерактивности, и всё-таки она будет во многом зависимой от внешних неконтролируемых
В
секцию реализации (implementation) добавьте реализацию всех описанных
методов.
Строки
помеченные данным цветом можно пока опустить
Лучше
всего это делать по одному методу, тогда Вам легче будет отследить ошибки.
Поскольку
все описанные выше методы уже описаны в модуле Main.pas архива с исходным
кодом игры "Ну, Погоди!", то просто откройте этот файл из Delphi
или даже просто блокнотом, а затем находите реализации нужных методов
и вставляйте их в свой код.
Например,
находим в модуле Main.pas метод constructor TD3DGameApp.Create;
Копируем
весь код реализации этого метода -
{
TD3DGameApp }
constructor
TD3DGameApp.Create;
begin
inherited Create;
и
вставляем в код модуля формы TMainForm нашего проекта.
Код
который пока не имеет отношения к нашим задачам нужно опускать.
Аналогично
добавьте код в секцию интерфейса и реализации для всех описанных на схеме
функционирования D3D-приложения и для вложенных методов.
Попробуйте
откомпилировать приложение.
Вы
получите целый ряд сообщений об ошибках, касающихся отсутствия кода из
подключаемых модулей.
Например,
класс TD3DGameApp является производным от TD3DAbstractApp, который в свою
очередь нигде не объявлен.
Что
же делать?
Вам
всего лишь нужно настроить Ваш проект на использование модулей из библиотеки
Delphi DirectX, которая есть в папке common исходного кода игры "Ну,
Погоди!", а затем подключать нужные модули в пункте uses в секции
интерфейса или реализации.
Так
для указанного выше примера Вам нужно вызвать настройки вашего проекта
для
среды Delphi 2006 выбрать пункты меню
Project
> Options > Directories/Conditionals и в пункте Search Path указать
абсолютные (или лучше относительные) пути к исходным файлам библиотеки
Delphi DirectX например так
В
этом примере папка common с исходным кодом библиотеки Delphi DirectX 8.1
располагается на три уровня выше папки с текущим проектом
Относительные
пути удобнее тем, что если располагать нужные файлы библиотек и проектов
внутри папок одной и той же корневой папки, то пути будут одни и те же в
разных системах если копировать или формировать эту корневую папку целиком.
Если же Вы укажете абсолютные пути, то для каждой системы Вам придется их
каждый раз корректировать применительно к расположению папок внутри указанной
системы.
Теперь
остается подключить нужные модули из библиотеки в пункте uses нужной секции
(интерфейса или реализации).
Если
Вы знакомы с основами программирования на Delphi, то должны знать, что
сразу в обоих секциях ссылка не ставится.
Если
ставите ссылку на модуль в пункте uses секции интерфейса, то весь общедоступный
(public) код этого модуля становится доступен как в интерфейсной, так
и в реализационной части данного модуля проекта.
Если
ставите ссылку на модуль в пункте uses секции реализации, то его общедоступный
код будет доступен только внутри секции реализации данного модуля проекта.
В
нашем примере класс TD3DAbstractApp объявлен в модуле D3DAbstractApp.pas
внутри папки common библиотеки Delphi DirectX.
Следовательно
для его подключения в пунке uses секции интерфейса нужно указать имя подключаемого
модуля -
Как
узнать какие классы в каких модулях библиотеки Delphi DirectX найти?
Для
этого нужно посмотреть исходный код модулей библиотеки, чтобы познакомиться
с ним поближе, можно выполнить поиск требуемой фразы по файлам внутри
папки библиотеки, можно также ориентироваться на исходный код игры "Ну,
Погоди!" из которого будет ясно (если навести указатель мыши) какой
тип к какому модулю относится.
Таким
образом следующим Вашим заданием будет являться поиск и подключение необходимых
модулей из библиотеки Delphi DirectX, чтобы устранить ошибки связанные с
использованием типов и классов из данной библиотеки.
Тип
TAppStates и некоторые другие недостающие поля и типы, являющиеся локальными
для данного модуля нужно описать дополнительно, как это сделано в модуле
Main.pas исходного кода проекта игры "Ну, Погоди!"
Так
например указанный тип TAppStates описан перед описанием класса TD3DGameApp
как
//
состояния в которых может находиться приложение
TAppStates = (asBeginInit, asInit, asEndInit, asReady, asGame);
Чтобы
выводить картинку не на всю рабочую область окна приложения, а лишь в
область заданных размеров можно воспользоваться компонентом TPanel.
Вам
нужно всего лишь добавить его на форму окна приложения, разместить нужным
образом, назвать например RenderWindowPanel.
Тогда
код который Вы добавите из модуля Main.pas исходного кода игры "Ну,
Погоди!" Вам станет ясен и всё встанет на свои места.
Когда
Вы закончите с добавлением всех необходимых методов, полей, переменных,
констант и прочего у Вас сразу же возникнет вопрос:
Как
реализовать метод ApplicationEventsIdle ?
Для
этого Вам достаточно добавить на форму окна компонент TApplicationEvents,
назвать его например ApplicationEvents, он находится на вкладке Additional
палитры компонентов Delphi 2006. Добавив его для него нужно создать событие
OnIdle и вставить в него код из аналогично обработчка модуля Main.pas
исходного кода игры "Ну, Погоди!".
Таким образом, если Вы добавили весь необходимый код, попробовали откомпилировать
и не получили никаких ошибок во временя компиляции, то Вам осталось сделать
совсем немного, чтобы приложение заработало как нам нужно.
Еще
раз взгляните на реализацию метода
procedure
TMainForm.ApplicationEventsIdle(Sender: TObject; var Done: Boolean);
begin
inherited;
Done:= True;
// Do not render if the app is minimized
if IsIconic(Application.Handle) then Exit;
// Update and render a frame
if g_d3dApp <> nil then begin
if g_d3dApp.m_bDisplayReady then
begin
g_d3dApp.Render3DEnvironment;
end;
end;
// Keep requesting more idle time
Done:= False;
end;
и
на схему функционирования D3D-приложения -
Код
создания необходимых объектов D3D добавлен и реализован внутри FormShow,
код освобождения выделенных ресурсов также добавлен и реализован внутри
FormDestroy. Код внутри UpdateInput, частично внутри FrameMove пока можно
опустить.
Остается
лишь метод Render3DEnvironment, а внутри него метод Render -
function
TD3DGameApp.Render: HRESULT;
begin
// Render the scene based on current state of the app
case m_dwAppState of
asInit: ;
asReady: begin
//DrawGameView;
//ShowFrame;
end;
//asGame: DrawGameView;
end;
result := S_OK;
end;
Если
Вы еще не поняли до конца что нужно сделать, тогда рассмотрим более детально
как будет работать наше приложение.
Итак,
(для
лучшего понимания ориентируйтесь по схеме и исходному коду)
program
DelphiDirectXStartTemplate;
uses
Forms,
Main in 'Main.pas' {MainForm};
{$R
*.res}
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
Т.
е. среда Delphi инициализирует приложение, создает его форму MainForm
и запускает цикл прокачки сообщений (Run).
Во
время показа формы (FormShow) будет вызван код этого метода. Внутри него
как мы видим вызывается метод InitD3DApp
Он
вызывает создание объекта класса TD3DGameApp и вызывает метод его инициализации
Create_
Внутри
данного метода происходит создание еще одного окна. Зачем?
Это
связано с тем, что существуют два режима работы D3D-приложения: оконный
и полноэкранный. Для каждого из них должно быть создано своё окно. Это
указано также в английских комментариях к коду, которые были сохранены
при конверсии примеров из DX SDK на C++.
В
нашем случае приложение пока не потребует полноэкранного режима, но создание
отдельного окна все равно требуется для корректной работы создаваемых
объектов DirectX.
Далее
вызывается метод OneTimeSceneInit, внутри которого происходит создание
объектов DirectX - Direct3D, Direct3DDevice и т.д. Там же происходит загрузка
необходимых текстур, звуков, моделей, текста и прочего.
Но
для нас сейчас важно не это. Важно, что в конце реализации данного метода
приложение переходит в состояние -
m_dwAppState
:= asBeginInit;
Если
посмотрим далее, в ту часть кода метода FrameMove, которую Вам нужно было
оставить -
function
TD3DGameApp.FrameMove: HRESULT;
begin
case m_dwAppState of
asBeginInit: begin
//LoadGameTextures;
//RestoreGameTextures;
m_dwAppState := asInit;
end;
asInit: m_dwAppState := asEndInit;
asEndInit: m_dwAppState := asReady;
Здесь
состояние переходит в asReady.
Текстуры и прочее мы пока опускаем из-за упрощенных задач, которые пока
стоят перед нами.
Нам
остается заглянуть внутрь метода Render -
function
TD3DGameApp.Render: HRESULT;
begin
// Render the scene based on current state of the app
case m_dwAppState of
asInit: ;
asReady: begin
//DrawGameView;
//ShowFrame;
end;
//asGame: DrawGameView;
end;
result := S_OK;
end;
Здесь
Вам остается раскомментировать строку //DrawGameView;
DrawGameView;
А
далее, добавить описание и реализацию этого метода в класс TD3DGameApp
-
описание
-
protected
{...}
//
Rendering functions
procedure DrawGameView;
{...}
реализация
-
procedure
TD3DGameApp.DrawGameView;
begin
if not Assigned(m_pd3dDevice) then Exit;
// Begin the scene
if SUCCEEDED(m_pd3dDevice.BeginScene) then
begin
// Erase the screen
m_pd3dDevice.Clear( 0, nil, D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER, $FF000000,
1.0, 0 );
//DrawGameScene;
//CountFPS;
// End the scene
m_pd3dDevice.EndScene;
end;
end;
Теперь
Вам нужно скомпилировать Ваше приложение и попробовать его запустить.
Если Вы получаете сообщения об отсутствии dll, значит Вы забыли поместить
в папку с проектом файлы
D3DX81ab.dll
DXErr81ab.dll
При
запуске приложения оно должно давать примерно такой результат -
Положение
окна Direct3D (черная область) будет зависеть от того, как расположить компонент
TPanel, который Вы добавили на форму.
Если
расположить его во всю рабочую область окна, а цвет очистки задать другой,
то можно получить следующий результат -
На
рисунке также видно как задать в коде иной цвет заполнения рабочей области
окна D3D-приложения.
Вы
можете скачать исходный код шаблона D3D-приложения (17,2 Кб)
[downloads:9]
пригодный для работы с библиотекой Delphi DirectX 8.1 в среде Delphi
2006 и выше. Однако помните, что для компиляции и работы Вам обязательно
потребуется код библиотеки Delphi DirectX 8.1 (папка с общим кодом
common).
Недавно начал просмотр фильма ФОРРЕСТ ГАМП. Фильм очень понравился. Главный герой - Форрест Гамп делится трогательной историей своей жизни.
По-настоящему жалко героя, когда он терпит нападки в свой адрес. В то же время чудесный дар - способность быстро бегать - поражает. Герой с честью выходит из самых невыгодных ситуаций.
Интересен тот факт, что быстрый бег появился у Гампа не сам по себе, а в связи с обстоятельствами - в детстве у него были больны ноги и он был вынужден носить специальные кронштейны. И вот случай приводит к тому, что Гамп избавляется от этой обузы и приобретает способность быстро бегать.
Это происходит в тот момент, когда он встречается с местными мальчишками, которые высмеивают Гампа за его слабоумие и пытаются издеваться над ним. В момент когда происходит столкновение пацаны преследуют Форреста на своих велосипедах. Единственный друг - девочка Дженни - кричит Гампу: Беги, Форрест, Беги !
Вот так и происходит, что Гамп убегает от своих преследователей пустив им в глаза тучу пыли и обретя новый дар, а они уже даже и не пытаются его догнать, понимая всю тщетность своих попыток, несмотря на то, что имеют явное преимущество - они на велосипедах и их трое.
Потрясающая наивность и недостаток нормативного поведения приводят Гампа к забавным ситуациям.
Но наш герой никогда не унывает и выходит успешно из самых трудных ситуаций, становится заслуженным героем.
Фильм наводит на разные размышления.
Очень много сцен, которые вызывают слёзы сочувствия и сопереживания событиям происходящим на экране.
fle game engine это игровой движок который развивается
на протяжении 2005 - по настоящее время. Разработки по нему приостанавливались,
затем возобновлялись снова и вот ! Он увидел свет.
выпуск 66 fle fast games коротко об играх сделанных на fle game engine
Вы можете прямо сейчас оформить платную подписку на fle game engine -
Стоимость:
600
руб.
новый современный движок для создания игр на платформе Windows Directx 9c - которая поддерживается большинством ПК.
Контрольные суммы можно проверить утилитой HashTab
После скачивания вы получите самораспаковывающийся архив. Запустите его,
чтобы распаковать.
Система написана на c++ под directx 9.
Требования - наличие установленных MSVS 2005 (Microsoft Visual Studio) и DirectX SDK Aug 2008.
Для других версий MSVS и DirectX SDK могут потребоваться модификации кода !
Что включает дистрибутив ?
- Редактор сцен Scene Editor;
- пример игры simple game с полным исходным кодом;
- пошаговое описание создания примера игры simple_game - представляет набор html файлов пригодных
для открытия и чтения из любого браузера;
- Coords 2D - утилиту отладки анимаций и подбора экранных координат
содержит богатую библиотеку готовых примеров игровых спрайтов;
- полный исходный код fle game engine - позволит вам создать свою собственную игру, а
также расширить движок необходимыми возможностями в дальнейшем, никаких ограничений на
расширение нет;
- fgg_setup.exe
Fly snow 3d - визуальные эффекты падающего снега/дождя и др. красивые эффекты с частицами в 2d/3d;
Скачав дистрибутив fle game engine вы можете приступить к созданию своей игры прямо сейчас !
Также есть версия системы для Delphi и DirectX SDK 8.1
На данный момент версия системы для Delphi и DirectX SDK 8.1 уже не развивается и представлена в завершенных игровых проектах Эмулятор игры Ну, Погоди !, Нечто: Необъяснимое,
Нечто: Необъяснимое в плену желаний.
Контрольные суммы можно проверить утилитой HashTab
После скачивания вы получите самораспаковывающийся архив. Запустите его,
чтобы распаковать.
Система написана на c++ под directx 9.
Требования - наличие установленных MSVS 2005 (Microsoft Visual Studio) и DirectX SDK Aug 2008.
Для других версий MSVS и DirectX SDK могут потребоваться модификации кода !
Что включает дистрибутив ?
- Редактор сцен Scene Editor;
- пример игры simple game с полным исходным кодом;
- пошаговое описание создания примера игры simple_game - представляет набор html файлов пригодных
для открытия и чтения из любого браузера;
- Coords 2D - утилиту отладки анимаций и подбора экранных координат
содержит богатую библиотеку готовых примеров игровых спрайтов;
- полный исходный код fle game engine - позволит вам создать свою собственную игру, а
также расширить движок необходимыми возможностями в дальнейшем, никаких ограничений на
расширение нет;
- fgg_setup.exe
Fly snow 3d - визуальные эффекты падающего снега/дождя и др. красивые эффекты с частицами в 2d/3d;
Скачав дистрибутив fle game engine вы можете приступить к созданию своей игры прямо сейчас !
Чтобы иметь возможность самостоятельно создать свою игру на базе примера simple_game с неограниченными возможностями дальнейшего расширения! - оформите подписку на fle game engine -
Версия: 03.07.2017
Шарики и Ямки: Каникулы Зеленого Шарика.
Сумасшедший Дэйв из игры Растения против Зомби в гостях у Кости Коробкина.
Костя Коробкин вынужден спасаться от ядовитых горошин.
В игре используется новая технология рассредоточения внимания.
Это значит, что Игрок получает задачи, которые нужно решать одновременно.
Сами по себе задачи не сложные, но в совокупности формируется довольно увлекательный геймплей.
Системные требования:
Windows XP / 7 / 8 / 10
directx 9c
~740 Mb свободного места на носителе информации.
Размер самораспаковывающегося архива: 493 Mb
Контрольные суммы для проверки целостности скачанного архива:
Сборник уроков покажет и расскажет Вам как создать игру и Вы сможете не только
в теории, но и на практике сделать это вставив своё творчество - графику, звуки
и музыку в игру Шарики на лифте и играть в неё !!!
БЕСПЛАТНОЕ ПРИЛОЖЕНИЕ К КОМПЛЕКТУ - игра Шарики на лифте. Так что вы сможете не только
изучить уроки, но и играть в свою игру.
Особенности продукта:
- Вы не только играете, но и творите;
- Уроки по созданию графики;
- Уроки по созданию звуков;
- Уроки по созданию музыки;
- Вставка созданных наработок в игру;
- Уроки по программированию на c++ для directx 9c и созданию дополнений для игры - в ближайших планах - следите за обновлениями !;
Вы можете получить следующие преимущества, используя fle game engine
для создания своих игр:
- открытость и документированность - автор постоянно работает над развитием проекта и
созданием проектов в нём;
- единый код - весь код написан на протяжении многих лет единолично одним автором и продолжает развиваться
за счёт собственных средств - поэтому движок продолжит развитие и его ждут новые перспективы;
- разнообразие проектов - на движке создаются игры 2d/3d без жанровых ограничений;
- универсальность и расширяемость без ограничений - движок написан нативно на c++ и продолжает развиваться
на этой же основе, поэтому Вы можете самостоятельно добавить любые возможности просто реализовав их на c++;
- перспективы: в ближайшее время движок начинает своё продвижение на новые платформы - в самое ближайшее время это андроид,
а дальше будут и другие !
fle game engine инструменты разработки
Движок включает все те особенности, которые можно увидеть в указанных ниже играх.
Игры которые развивали движок и одновременно делались на нём, став его частью:
Ну, Погоди ! проект на delphi directx 8.1, c++ directx 9c, 2d
Пример приложения: падающий снег - fge snow sample
Представляет небольшое приложение с настройками в файле, при помощи которых Вы можете задавать самые
различные параметры выводимых частиц, имитируя снег, разноцветные огоньки, дождь, движение звезд или что-либо еще.
Вариантов очень много.
Можно использовать как генератор для съемки футажей падающего снега и другого применения в аналогичных
областях.
Представляет пример приложения на движке для создания игр fle game engine.
Эффекты падающего снега или эффекты движения частиц можно применять в игровых сценах создаваемых
на движке fle game engine и в других независимых проектах.
44 выпуск часть 2.1 создание игры на fle game engine
Смотрим какие есть статьи и уроки на сайте, пример
готовой игры Шарики на лифте, и продолжаем изучать
как добавлять игровые объекты в редакторе Scene Editor.
44 выпуск часть 2.2 создание игры на fle game engine
Учимся добавлять новый игровой объект в редактор
Scene Editor и в игру на примере спрайтов шарика
lonely ball dizzy, shakes his fist, winks.
44 выпуск - fle engine basics часть 1
Смотрим редактор Scene Editor, как в нём создается
игровая 2d сцена с глубиной по оси z, а также
как добавляются новые типы и виды игровых объектов.
43 выпуск часть 2 - вывод начальной заставки
fle game engine - движок для создания игр.
Выводим начальную заставку игры.
В примере это заставка самого движка,
но в вашем проекте может быть любая другая.
Выпуск 43 часть 1 Меняем иконку приложения
Серия уроков посвященных разработке игр в fle game engine.
Урок 1 - Меняем иконку приложения со стандартной на вашу.
fle Scene Editor. 42 выпуск часть 1
Рассматриваем редактор 2d сцен с глубиной по оси z,
а также то как выглядит созданная сцена в игре.
Сам редактор можно скачать на сайте, как и игру.
Игра Веселый Буквоежка и основанная на ней - Freelancer way.
fle Scene Editor. 42 выпуск часть 2
во 2 части показано как создается игровая
сцена в редакторе Scene Editor, а затем
отображается в игре.
Содержимое данной страницы доступно только зарегистрированным пользователям.