Предыдущая Следующая
Вы точно играли в игры, в меню которых одна из выбранных команд, например New Game, красилась одним из цветов, отличным от неактивных в данный момент команд. В этом меню переход по командам происходит по нажатии клавиш с командами вверх и вниз (Down и Up). В тот момент, когда вы переходите на новую команду, эта строка текста закрашивается одним из цветов, и таким образом вы знаете, какая из команд активна в данный момент. Вот точно такое же меню мы реализуем в игре «Футбольный стрелок». Способов, как всегда, очень много, но мы остановимся на одном из них.
Вернемся к листку бумаги. Давайте возьмем простой листок бумаги, покрасим его в темно-зеленый цвет и положим на стол - это будет у нас фон меню. Затем возьмем еще один листок бумаги, меньший по размеру, покрасим его в светло-зеленый цвет и нарисуем на нем футбольное поле. Затем на этом футбольном поле мы нарисуем команды меню и вырежем их аккуратно ножницами. Положив второй листок бумаги с футбольным полем поверх основного фона, мы увидим, что все команды меню стали хорошо заметны, поскольку они приняли более темный цвет фона. Теперь нам нужно сделать так, чтобы одна из команд (активная в данный момент) закрашивалась в желтый цвет.
Для этих целей вырежем прямоугольник, размер которого будет по своей высоте на несколько миллиметров больше, чем высота букв в командах, а по ширине - соответствовать (или даже на пару миллиметров больше) самой длинной команде в меню. После этого закрасим прямоугольник желтым цветом и поместим его между фоном и футбольным полем, получив своего рода подложку для команд меню. При этом прямоугольник должен размещаться точно под одной из команд. Тогда эта команда получит в качестве основного цвета желтый цвет, а все остальные команды - зеленый цвет. То есть мы элементарно подсвечиваем желтым цветом активную на данный момент команду.
Теперь нам необходимо только расчетливо перемещать этот прямоугольник по командам меню. Для этого необходимо создать простой механизм в классе MenuGame, который будет устанавливать желтый прямоугольник на определенную позицию в пространстве под активную в текущий момент команду. Задача несложная, и все расчеты мы будем вести от центра экрана, поскольку заставка футбольного поля привязана именно к этой части экрана.
Переходим к исходному коду класса MenuGame, который дан в листинге 22.3. По мере изучения программного кода будем комментировать заслуживающие внимания нововведения. Предыдущая Следующая
|