Предыдущая Следующая
Первым делом в новый проект MenuCursor необходимо добавить графическое изображение курсора, выполненное в одном из графических редакторов. Это изображение заменит стандартный курсор мыши, используемый Windows по умолчанию. В нашем проекте в качестве такого курсора выступает изображение стрелы (рис. 12.3), которое мы явно добавляем в папку проекта Content\Textures. Обратите внимание, что изображение стрелы в иконке курсора находится под небольшим углом, но если вы посмотрите на изображение курсора на своем компьютере, то заметите, что он также расположен под определенным углом. Это стандартная практика создания курсоров для операционной системы Windows, и не только.
Техника наведения курсора мыши на одну из двух табличек в проекте MenuCursor строится на базе проверки пересечения прямоугольников. В главе 10 мы изучали вопросы по обработке ситуации, возникающей при столкновении двух и более объектов
Рис. 12.3. Графическое изображение курсора
между собой. Именно на основе этого подхода и реализуется обработка ситуации в наведении курсора мыши на две таблички. Здесь нам достаточно создать ограничивающий прямоугольник для курсора мыши, а также два прямоугольника для табличек меню Игра и Выход. Затем в игровом цикле нужно постоянно проверять условие по пересечению этих прямоугольников. Если ограничивающий прямоугольник курсора пересекается с ограничивающим прямоугольником одной из табличек, то эта табличка с командой становится активной в данный момент, со всеми вытекающими отсюда последствиями. Все последствия, как вы помните, приводят либо к запуску игры, либо к ее закрытию.
Перейдем к исходному коду. Нам понадобятся несколько дополнительных объектов и переменных, которые мы объявляем в области глобальных переменных класса Game1. Исходный код класса Menu остается неизменным.
Sprite mouse; MouseState mouseState; public BoundingBox bbMouse; public BoundingBox bbCursorGame; public BoundingBox bbCursorExit;
Первый объект mouse класса Sprite будет представлять неанимированный объект этого класса, но вы в своих проектах можете спокойно создать и анимиро-ванное изображение курсора. Во второй строке кода этого блока мы создаем структурную переменную mouseState структуры MouseState. Эта структура аналогична по своей направленности структуре KeyboardState, с той лишь разницей, что она отслеживает состояние мыши и имеет свои механизмы работы. И в последних трех строках этого блока создаются три ограничивающих прямоугольника для курсора мыши и двух табличек. Предыдущая Следующая
|