Предыдущая Следующая
private ModelClass ball;
static float aspectRatio;
static float FOV = MathHelper.PiOver4;
static float nearClip = 1.0f;
static float farClip = 1000.0f;
float angle;
Matrix view;
Matrix proj;
Matrix world;
Matrix rotationMatrixY;
В последней строке кода мы создаем еще одну дополнительную матрицу, которую впоследствии будем использовать для вращения мяча по оси Y.
Для загрузки графики в будущий объект класса SplashScreen создается метод InitializeSplashScreen() с тремя параметрами. Первый параметр content принимает участие в загрузке графики из рабочего каталога игры, а два других x и y будут передавать в этот метод текущие значения ширины и высоты экрана монитора. Эти значения нам понадобятся для определения позиций вывода отверстий на экран.
/// <summary>
/// Загрузка компонентов заставки /// <summary>
public void InitializeSplashScreen(ContentManager content, int x, int y)
{
Загружаем в программу все четыре графических изображения.
screen = content.Load<Texture2D>("Content\\Textures\\splash"); title = content.Load<Texture2D>("Content\\Textures\\title"); enter = content.Load<Texture2D>("Content\\Textures\\enter"); for (int i = 0; hole.Length > i;
{
hole[i] = content.Load<Texture2D>("Content\\Textures\\hole");
}
336 Последние штрихи
Титульная заставка 337
А вот в следующем цикле мы выбираем случайные позиции на экране для всех тридцати отверстий и таким образом как бы раскидываем по экрану отверстия в случайном порядке. В этом случае при каждом новом запуске игры отверстия будут иметь новые позиции, что само по себе неплохо - разнообразие в играх, пусть даже в представлении титульной заставки, нам не помешает.
for (int i = 0; position.Length > i; i++) {
Область вывода отверстий задается по оси X от 20 пикселей до ширины экрана минус 60 пикселей. Эти самые 60 пикселей примерно равны ширине одного входного отверстия.
position[i].X = rand.Next(2 0, x - 60); position[i].Y = rand.Next(100, y - 60);
}
Затем происходят загрузка в игру мяча и выбор позиции на экране, которая находится точно в центре экрана.
ball = new ModelClass();
ball.Load(content, "Content\\Models\\SoccerballRed"); ball.position = new Vector3(0, 0, 0);
Переменная aspectRatio получает текущие значения ширины и высоты экрана и в дальнейшем будет участвовать в матричных расчетах.
aspectRatio = (float)x / (float)y;
}
Следующий метод DrawScreen() рисует графику на экране и имеет целых пять параметров. Первые два параметра - spriteBatch и graphics - как вы помните, нужны нам для работы с графикой. Параметры x и y передадут в тело метода ширину и высоту дисплея, а последний параметр gameTime позволит нам получать прошедшее время за один такт игры, которое мы будем использовать для вращения мяча по оси Y. Предыдущая Следующая
|