Предыдущая Следующая
Для того чтобы все установки вращения вступили в силу, нужно умножить матрицу вращения на матрицу трансляции и сохранить итоговый результат в мировой матрице.
world = Matrix.CreateTranslation(ball.position) ball.DrawModel(world, view, proj);
* rotationMatrixY;
При желании можно также вращать мячик сразу по всем трем осям. Для этого достаточно создать еще две матрицы для осей X и Z, умножить их на какое-то число, а затем элементарно перемножить матрицы между собой, сохранив полученное значение в мировой матрице. Например, вот так:
angle += (float)(gameTime.ElapsedGameTime.TotalSeconds * 2.0f); Matrix rotX = Matrix.CreateRotationX((float)angle); Matrix rotY = Matrix.CreateRotationY((float)angle); Matrix rotZ = Matrix.CreateRotationZ((float)angle);
world = Matrix.CreateTranslation(ball.position) * rotX * rotY * rotZ; ball.DrawModel(world, view, proj);
На этом разработка класса SplashScreen окончена, и мы можем переходить к разработке трех других заставок игры.
22.3. Заставки Помощь, Об игре и Книги
Для создания трех оставшихся заставок игры мы возьмем исходный код класса SplashScreen и добавим в него ряд изменений. Основным отличием оставшихся заставок от титульной заставки (за исключением смены текста на футбольных полях) является наличие не одного мяча, а трех (рис. 22.4).
Идея следующая. Вместо того чтобы вращать в центре экрана только один мяч, мы добавим в заставку еще два мяча, а для определения позиций мячей на экране зададим любые ненулевые координаты. Вращать мячи будем по двум осям, а поскольку мы задаем позиции для мячей не в центре экрана, мячики будут перемещаться по всему экрану. В этом случае область вращения мячей задается начальными позициями объектов.
В листинге22.2 вашему вниманию представлен класс HelpScreen. Этот класс аналогичен двум другим классам AboutScreen и BooksScreen. В этих классах изменяется только текст, размещенный на футбольных полях. Полный исходный код проекта находится в папке Code\Chapter22\Menu.
Рис. 22.4. Пример оформления одной из заставок
//=========================================================================
//=========================================================================
/// <summary>
/// Листинг 22.2
/// Исходный код к книге:
/// "Программирование компьютерных игр под Windows в XNA Game Studio Express" /// Автор книги: Горнаков С. Г.
/// Глава 22
/// Проект: Menu
/// Класс: HelpScreen
/// Меню
/// <summary> Предыдущая Следующая
|