Создание интро

В связи с тем, что моей основной занятостью являются различные научные проекты в ВУЗ'е (в этом семестре я разработал программу по технической диагностике и мини "ГИС РЭО" к своей разработке по ФАР - моя память использования GLScene (далее "сцены") бесконечно стремилась к нулю за эти годы. Причем к нулю устремилась не только память, но и мои собственные старые демки, которые я где-то потерял/спрятал/засунул и т.д. и мне придется все создавать с нуля "от" и "до".

Начал я с выводом логотипов. Последовательно логотип GLScene, который сделал Conferno, мой логотип, который нарисовала акварелью моя девушка и логотип GLScene.RU опять же от Conferno.

Когда в библиотеку материалов начал добавлять изображение то удивился и огорчился одновременно. Понравилось то, что в свойстве материала автоматически добавилось Texture.Enabled := True;, а вот зачем TextureMode по умолчанию сменили с tmDecal на tmModulate я не понял.

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


procedure TGameLogo.Update(const newTime: Double);
begin
if isLogo then
begin
case Trunc(newtime) of
0: if FGLHUDLogo.Material.LibMaterialName<>'Logo1' then FGLHUDLogo.Material.LibMaterialName := 'Logo1';
1: FGLHUDLogo.AlphaChannel := newTime - 1;
4: FGLHUDLogo.AlphaChannel := 5 - newTime;

5: if FGLHUDLogo.Material.LibMaterialName<>'Logo2' then FGLHUDLogo.Material.LibMaterialName := 'Logo2';
6: FGLHUDLogo.AlphaChannel := newTime - 6;
9: FGLHUDLogo.AlphaChannel := 10 - newTime;

10: if FGLHUDLogo.Material.LibMaterialName<>'Logo3' then FGLHUDLogo.Material.LibMaterialName := 'Logo3';
11: FGLHUDLogo.AlphaChannel := newTime - 11;
14: FGLHUDLogo.AlphaChannel := 15 - newTime;
end
end else
if Self <> nil then Destroy;
end;

где FGLHUDLogo - приватный компонент TGLHUDSprite (спрайт, который отображается во вьювере (TGLSceneViewer)).

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

Сделал я вывод лого в отдельную демку, но мне кажется что зря, так как придется немного дописывать его при добавлении в гросс-класс (гыгы) TGame. Вообще мне было бы интересно узнать мнение местной аудитории, как лучше: создать проект, в нем поместить класс TGame и всю игру делать в одном-единственном проекте или насоздавать проектов типа pLogo, pMenu, pSwitchLevel, pGamePlay, pDeath и потом уже их всех объеденить в один конечный проект?


06.04.10 → 07:28:33

Комментарии (0)



Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.

Сообщений: 4
Категории:
   Чайник пишет стратегию