Предыдущая Следующая
{
case CurentGameState.SplashScreen:
{
break;
}
case CurentGameState.MenuScreen:
{
break;
}
case CurentGameState.AboutScreen:
{
break;
}
case CurentGameState.GameScreen:
{
graphics.GraphicsDevice.RenderState.DepthBufferEnable = true; // мировая матрица
world = Matrix.CreateTranslation(ball.position); // матрица вида
view = Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 150.0f), Vector3.Zero, Vector3.Up); // проекционная матрица
proj = Matrix.CreatePerspectiveFieldOfView(FOV, aspectRatio,
nearClip, farClip);
// рисуем модель на экране
ball.DrawModel(world, view, proj);
break;
}
case CurentGameState.GameOverScreen:
{
break;
}
case CurentGameState.VictoryScreen:
{
break;
} }
base.Draw(gameTime);
} } }
Глава 19
Движение моделей _в пространстве
Продолжаем работать над игрой. В этой главе мы сформируем новый проект, в котором выведем на экран три разных мячика, а потом будем перемещать их в пространстве. Заметьте, что подход в представлении и освещении исходных кодов всех оставшихся проектов с этой главы несколько меняется. За время чтения этой книги вы уже хорошо поднаторели в программировании игр и разбирать каждую точку с запятой в коде программы смысла не имеет. Поэтому предлагается разделить все нововведения на разделы и рассматривать их в порядке убывания, а в конце всей главы изучать полный исходный код класса Gamel , где, как всегда, все модификации кода выделены жирным шрифтом.
Начнем работу над новым проектом BallArray. Полный исходный код этого проекта находится на компакт-диске в папке Code\Chapter19\BallArray. Откройте в проекте BallArray файл ModelClass.cs и приступайте к изучению примера.
19.1. Задаем скорость движения модели
В классе ModelClass добавляется одна новая переменная speed, с помощью которой мы задаем скорость движения объектов в пространстве.
public float speed; public ModelClass()
{
position = new Vector3(0, 0, 0); speed = 20.0f / 60.0f;
}
Переменная speed инициализируется значением 20.0f/60.0f. В данном случае число 60 - это количество секунд в одной минуте. Такая конструкция выбора скорости очень часто встречается в играх.
Для класса ModelClass это все нововведения. Переходим к исходному коду класса Gamel, где нам необходимо создать массив объектов класса ModelClass, а затем реализовать механизм перемещения объектов сверху вниз.
296 Движение моделей в пространстве
Инициализация и установка моделей на позиции 297
19.2. Создаем массив данных
Сначала нужно объявить массив объектов ball класса ModelClass. Предыдущая Следующая
|