Предыдущая Следующая
public Texture2D gl; public Texture2D g2;
public Texture2D[] hole = public Vector2[] position
new Texture2D[30]; = new Vector2[30];
Random rand = new Random();
new ModelClass[3];
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;
В метод DrawScreen() добавляется еще один новый параметр state. На базе переданного значения этого параметра в методе DrawScreen() посредством оператора switch мы будем выбирать, в каком месте рисовать желтую подложку для меню.
/// <summary>
/// Рисуем заставку
/// <summary>
public void DrawScreen(SpriteBatch spriteBatch, GraphicsDeviceManager graphics, int x, int y, GameTime gameTime, int state)
{
graphics.GraphicsDevice.Clear(Color.DarkGreen); spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
346 Последние штрихи
Смена игровых состояний в классе Game1
347
spriteBatch.Draw(title, new Vector2(x / 2 - title.Width / 2, 30), Color.White);
spriteBatch.Draw(enter, new Vector2(x / 2 - enter.Width / 2, y - 30-enter.Height), Color.White);
Выбираем для девушек позиции на экране монитора. Первая девушка рисуется с левой стороны дисплея, а вторая - с правой. Очень важно не задавать жесткие числовые значения для всех элементов меню, поскольку разрешение экранов у разных пользователей будет, естественно, разным. Всегда пользуйтесь для своих вычислений точкой в центре экрана, углами и четырьмя сторонами монитора. В этом случае компоновка графики в игре будет одинаково выглядеть на всех мониторах.
spriteBatch.Draw(g1, new Vector2(0, y / 2 - gl.Height/2), Color.White); spriteBatch.Draw(g2, new Vector2(x - g2.Width, y / 2 —g2.Height/2), Color.White);
В меню имеются пять команд, соответственно у нас есть пять состояний, или пять вариантов выбора позиций для подложки меню. В классе Gamel с помощью клавиатуры и клавиш «вверх» и «вниз» в игре мы будем переходить по командам меню, а значит, выбирать одну из команд. Каждой команде меню сверху вниз назначена своя цифра, поэтому выбор одной из команд меню будет соответствовать порядковому числовому значению.
Метод DrawScreen() вызывается на каждой итерации игрового цикла, и состояние переменной state будет всегда «свежим». А уже на базе полученного значения оператор switch выберет, какой из блоков исходного кода должен работать в данный момент и в точности в каком месте дисплея должна рисоваться желтая подложка меню. Предыдущая Следующая
|