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

Теперь переходим к конструктору класса и инициализируем все объекты и переменные, а в методе LoadGraphicsContent() добавляем загрузку изображения курсора в игру.

mouse = new Sprite(); bbMouse = new BoundingBox(); bbCursorGame = new BoundingBox(); bbCursorExit = new BoundingBox();

тоиэе.ЬоасЦсопгепг-, "СопгепгЛХТехг-игезХХтоиэе");

Далее в методе ирС^е(), в том месте, где мы в предыдущем проекте запускали работу меню и обрабатывали перемещение по клавиатуре Вверх и Вниз, добавляем вызов нового метода UpdateMouse(), к работе над которым сейчас приступим.

Что касается исходного кода в меню, отвечающего за обработку событий, полученных клавиатуры, то этот код можно удалить, а можно оставить. Если оставите, то пользователь сможет работать как с мышью, так и с клавиатурой, соответственно если удалите, то остается возможность работы только с мышью. Здесь

184 Создаем игровое меню

Проект MenuCursor 185

поступайте, как вам больше нравится, но я удалил код клавиатуры, чтобы вы элементарно не путались в лишних нагромождениях строк кода.

Сейчас мы работаем исключительно с мышью, поэтому давайте создадим в коде класса Game1 новый метод UpdateMouse() и возложим на него несколько ответственных задач, а в частности получение координат курсора, слежение за пересечением прямоугольников и обработку нажатия левой клавиши мыши.

public void UpdateMouse()

{

// Получаем местонахождение курсора мыши mouseState = Mouse.GetState(); mouse.spritePosition.X = mouseState.X; mouse.spritePosition.Y = mouseState.Y;

//-----------------------------------

// Создаем ограничивающие прямоугольники для курсора и табличек bbMouse.Min = new Vector3(mouse.spritePosition.X, mouse.spritePosition.Y, 0);

bbMouse.Max = new Vector3(mouse.spritePosition.X + mouse.spriteTexture.Width,

mouse.spritePosition.Y + mouse.spriteTexture.Height, 0);

bbCursorGame.Min = new Vector3(650, 400, 0); bbCursorGame.Max = new Vector3(950, 500, 0);

bbCursorExit.Min = new Vector3(650, 600, 0); bbCursorExit.Max = new Vector3(950, 700, 0);

//-----------------------------------

// Обрабатываем пересечение прямоугольников if (bbMouse.Intersects(bbCursorGame))

{

menu.cursorPositionGame = new Vector2(650, 400); menu.cursorPositionExit = new Vector2(700, 550); cursorState = 1;

}

if (bbMouse.Intersects(bbCursorExit))

{

menu.cursorPositionGame = new Vector2(700, 400); menu.cursorPositionExit = new Vector2(650, 550); cursorState = 2;

}

//-----------------------------------


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

Горяченькое

Друзья

Hosted by uCoz