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

{

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 выберет, какой из блоков исходного кода должен работать в данный момент и в точности в каком месте дисплея должна рисоваться желтая подложка меню.


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

Горяченькое

Друзья

Hosted by uCoz