#include "DarkGDK.h"
// Создаем переменные с ID объектов
int Terrain = 1;
int SkyBox = 2;
int JetFighter = 3;
// Создаем функцию, обрабатывающую ввод с клавиатуры
void UserInput ( void )
{
// Клавиша "вверх"
if ( dbUpKey ( ) )
{
dbPitchObjectUp ( JetFighter, 1.0 );
dbPitchCameraUp ( -1.0 );
}
// Клавиша "вниз"
if ( dbDownKey ( ) )
{
dbPitchObjectDown ( JetFighter, 1.0 );
dbPitchCameraDown ( -1.0 );
}
// Клавиша "влево"
if ( dbLeftKey ( ) )
{
dbRollObjectLeft ( JetFighter, -1.0 );
dbRollCameraLeft ( 1.0 );
}
// Клавиша "вправо"
if ( dbRightKey ( ) )
{
dbRollObjectRight ( JetFighter, -1.0 );
dbRollCameraRight ( 1.0 );
}
}
// В DarkGDK заместо функции main() используется DarkGDK()
void DarkGDK ( void )
{
// Устанавливаем параметры экрана, переходим в полноэкранный режим
dbSetDisplayMode ( 1280, 1024, 32 );
dbSetWindowOff ();
dbSyncOn ( );
dbSyncRate ( 60 );
// Устанавливаем рабочую директорию
dbSetDir ( "Media" );
// Создаем ландшафт
dbLoadImage ( "Terrains\\Default Terrain\\texture.jpg", 1 );
dbLoadImage ( "Terrains\\Default Terrain\\detail.jpg", 2 );
dbSetupTerrain ();
dbMakeObjectTerrain ( 1 );
dbSetTerrainHeightMap ( 1, "Terrains\\Default Terrain\\map.bmp" );
dbSetTerrainScale ( 1, 6.0, 1.2, 6.0 );
dbSetTerrainLight ( 1, 1.0f, -0.25f, 0.0f, 1.0f, 1.0f, 0.78f, 0.5f );
dbSetTerrainTexture ( 1, 1, 2 );
dbBuildTerrain ( 1 );
// Создаем "СкайБокс"
dbLoadObject ( "Sky Boxes\\Default Sky Box\\skybox2.x", 2 );
dbSetObjectLight ( 2, 0 );
dbScaleObject ( 2, 30000, 30000, 30000 );
// Создаем самолет
dbLoadObject ( "Models\\Jet Fighter\\Jet Fighter.x", 3 );
float JetFighterSpeed = -2.5;
// Устанавливаем позицию и орентацию объектов
dbPositionObject ( JetFighter, dbObjectPositionX ( Terrain ), dbObjectPositionY ( Terrain ) + 10, dbObjectPositionZ ( Terrain ) );
dbPositionCamera ( dbObjectPositionX ( JetFighter ), dbObjectPositionY ( JetFighter ), dbObjectPositionZ ( JetFighter ) + 25 );
dbRotateCamera ( 0.0, 180.0, 0.0 );
// Устанавливаем "дальность видимости" камеры
dbSetCameraRange ( 1.0f, 30000.0f );
float CameraSpeed = 2.5;
while ( LoopGDK ( ) )
{
// Тело главного цикла программы
dbPointCamera ( dbObjectPositionX ( JetFighter ), dbObjectPositionY ( JetFighter ), dbObjectPositionZ ( JetFighter ) );
dbMoveObject ( JetFighter, JetFighterSpeed );
dbMoveCamera ( -JetFighterSpeed );
UserInput ( );
dbSync ( );
}
// Возвращаемся в Windows
return;
}