GlScene. Ландшафт и движение. *Создайте новый проект. *Киньте на форму компоненты: GlScene, GLSceneViever,GLCadancer, GLBitmapHDS. *Создайте камеру. В Position укажите - 0,6,0. *Создайте источник света. В Position - 0,5,0. *Создайте карту высот. В данном случае это небольшой черно-белый рисунок на котором нарисованы линии(можете нарисовать в обычном Paint). Чем светлее линия, тем больше высота. *Загрузите данный рисунок в компонент GLBitmapHSD через кнопки Picture, Load. *Зайдите в GlScene и добавьте обьект TerrainRenderrer(AddObject->Mesh objects->Terrain Renderer). *В свойстве HeightDataSource укажите GLBitmapHDS1. *Direction - 0,1,0 - это сделает поверхность горизонтальной, а не вертикальной. *В Scale 1,1,1. *Теперь сделаем поверхность не такой скучной. Зайдите в свойство Material->Texture. Загрузите из своей картинки траву, или что вам там нужно. Уберите галочку с Disabled. Ok. Ландшафт готов. Если используете .jpg в uses добавьте модуль Jpeg. *Теперь сделаем так, чтобы наш игрок мог двигаться по данной территории. *Киньте на форму 2 компонента: GLNavigator и GlUserInterface. *В GLNavigator->MovingObject выберите камеру - обьект который мы будем двигать. *В GlUserInterface->GLNavigator - выберите GLNavigator1. В свойстве MouseSpeed указываем чувствительность мыши. Можете указать любое. Я использовал 20. *Открываем свойство Form1 -> Form1Create нажав дважды по форме.Вписываем такую строку: GLUserInterface1.MouseLookActive:=true; которая скрывает курсор. *В uses добавляем модуль KeyBoard. *Щелкаем дважды на компоненте GlCadencer1 и вписываем туда такой вот код: if IsKeyDown(VK_ESCAPE) then Close; if IsKeyDown(VK_UP) then GLCamera1.Move(10*deltaTime); if IsKeyDown(VK_DOWN) then GLCamera1.Move(-10*deltaTime); if IsKeyDown('VK_LEFT) then GLCamera1.slide(-10*deltaTime); if IsKeyDown(VK_DOWN) then GLCamera1.slide(10*deltaTime); GLUserInterface1.Mouselook; GLUserInterface1.MouseUpdate; Что позволит управление стрелками и обзор мышкой. Вуаля. Проект готов. |