Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

protected override void UnloadGraphicsContent(bool unloadAllContent)

{

if (unloadAllContent == true)

{

content.Unload();

}

}

/// <summary>

/// Обновляем состояние игры /// <summary>

protected override void Update(GameTime gameTime)

{

keyboardState = Keyboard.GetState(); switch (gameState)

{

288 Загружаем в игру модель

Рисуем модель на экране монитора 289

case CurentGameState.SplashScreen: {

break; }

case CurentGameState.MenuScreen:

{

break;

}

case CurentGaimeState.AboutScreen:

{

break;

}

case CurentGameState.GameScreen:

{

if (keyboardState.IsKeyDown(Keys.Escape)) this.Exit();

break;

}

case CurentGameState.GameOverScreen:

{

break;

}

case CurentGameState.VictoryScreen:

{

break;

}

}

base.Update(gameTime);

}

/// <summary>

/// Рисуем на экране

/// <summary>

protected override void Draw(GameTime gameTime)

{

graphics.GraphicsDevice.Clear(Color.CornflowerBlue); switch (gameState)

{

case CurentGameState.SplashScreen:

{

break;

}

case CurentGameState.MenuScreen:

{

break;

}

case CurentGaimeState.AboutScreen:

{

break;

}

case CurentGameState.GameScreen:

{

graphics.GraphicsDevice.RenderState.DepthBufferEnable = true; DrawModel(model);

break;

}

case CurentGameState.GameOverScreen:

{

break;

}

case CurentGameState.VictoryScreen:

{

break;

} }

base.Draw(gameTime);

}

/// <summary> /// Рисуем модель /// <summary>

private void DrawModel(Model m) {

Matrix[] transforms = new Matrix[m.Bones.Count];

m.CopyAbsoluteBoneTransformsTo(transforms);

world = Matrix.CreateTranslation(positionModel);

view = Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 150.0f),

Vector3.Zero, Vector3.Up);

proj = Matrix.CreatePerspectiveFieldOfView(FOV, aspectRatio, nearClip, farClip);

foreach (ModelMesh mesh in m.Meshes)

{

foreach (BasicEffect effect in mesh.Effects)

{

effect.EnableDefaultLighting();

effect.World = transforms[mesh.ParentBone.Index] * world;

290 Загружаем в игру модель

Создаем объект класса LoadingModelClass 291

effect.View = view; effect.Projection = proj;

}

mesh.Draw(); }

} } }

18.2. Класс ModelClass

В шестой главе, когда мы только начинали работать с двухмерной графикой, был создан один общий класс для работы со спрайтами. В этой главе мы также создадим такой класс, но уже для представления трехмерных моделей. Для реализации этой задачи формируем новый проект LoadingModelClass на базе предыдущего примера и добавим в проект дополнительный класс ModelClass (см. листинг 18.2).

//=========================================================================


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz