Приставки
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
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

}

/// <summary>

/// Рисуем модель на экране /// <summary>

public void DrawModel(Matrix world, Matrix view, Matrix proj)

{

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

Matrix[] transforms = new Matrix[model.Bones.Count]; model.CopyAbsoluteBoneTransformsTo(transforms);

foreach (ModelMesh mesh in model.Meshes) {

foreach (BasicEffect effect in mesh.Effects)

{

effect.EnableDefaultLighting();

effect.World = transforms[mesh.ParentBone.Index] * world; effect.View = view; effect.Projection = proj;

}

mesh.Draw();

} }

}

}

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

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

Теперь необходимо создать в исходном коде класса Gamel объект ball класса ModelClass и загрузить в него модель мячика. После этого нужно установить матрицы и вызвать метод ball.DrawModel(world, view, proj) в цикле прорисовки графики на экране.

В листинге 17.3 представлен полный исходный код обновленного класса Gamel. Весь проект LoadingModelClass находится на компакт-диске в папке Code\Chapter17\LoadingModelClass.

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

/// <summary>

/// Листинг 17.3

/// Исходный код к книге:

/// «Программирование игр для приставки Xbox 360 в XNA Game Studio Express» /// Автор книги: Горнаков С. Г. /// Глава 17

/// Проект: LoadingModelClass /// Класс: Gamel

/// Загружаем в игру модель через класс /// <summary>

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

#region Using Statements

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

using System;

using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion

namespace LoadingModelClass

{

public class Gamel : Microsoft.Xna.Framework.Game

{

private enum CurentGameState

{ }

CurentGameState gameState = CurentGameState.GameScreen;

GraphicsDeviceManager graphics;


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

Горяченькое

Друзья

Hosted by uCoz