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

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.


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

Горяченькое

Друзья

Hosted by uCoz