Предыдущая Следующая
{
hole[i] = content.Load<Texture2D>(«Content\\Textures\\hole»);
}
for (int i = 0; position.Length > i;
{
position[i].X = rand.Next(200, x - 250); position[i].Y = rand.Next(100, y - 60);
}
for (int i = 0; ball.Length > i;
{
ball[i] = new ModelClass();
}
ball[0].Load(content, «Content\\Models\\Soccerball»); ball[0].position = new Vector3(-30, 40, -30); ball[1].Load(content, «Content\\Models\\SoccerballGreen»); ball[1].position = new Vector3(50, 30, -50); ball[2].Load(content, «Content\\Models\\SoccerballRed»); ball[2].position = new Vector3(-50, -30, 40); aspectRatio = (float)x / (float)y;
}
В метод 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);
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);
Создаем меню игры 35]
Выбираем для девушек позиции на экране телевизора. Первая девушка рисуется с левой стороны экрана, а вторая - с правой стороны. Очень важно не задавать жесткие числовые значения для всех элементов меню, поскольку разрешение экранов у разных пользователей будет, естественно, разным. Всегда пользуйтесь для своих вычислений точкой в центре экрана, углами и четырьмя сторонами телевизора. В этом случае компоновка графики в игре будет одинаково выглядеть на всех экранах.
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 с помощью джойстика и GamePadDPad в игре мы будем переходить по командам меню, а значит, выбирать одну из команд. Каждой команде меню сверху вниз назначена своя цифра, поэтому выбор одной из команд меню будет соответствовать порядковому числовому значению.
Метод DrawScreen() вызывается на каждой итерации игрового цикла, и состояние переменной state будет всегда «свежим». А уже на базе полученного значения оператор switch выберет, какой из блоков исходного кода должен работать в данный момент и в точности в каком месте дисплея должна рисоваться желтая подложка меню. Предыдущая Следующая
|