Урок 5: Новые методы программирования на PSP, глава 2

И вот вторая часть урока 5. Если вы не ознакомились с первой частью, то сделайте это сейчас.

Теперь, когда мы все установили, переходим к самой сути программы, функции main():

int main(void) {
scePowerSetClockFrequency(333, 333, 166);

Данная строка устанавливает тактовую частоту (это должно быть очевидным из имени функции). У вас может возникнуть вопрос, почему все-таки три параметра. Вы имеете в виду, если имеется один процессор, правильно? А вот и неправильно. PSP фактически имеет три процессора. Первым параметром является ЦП (основной процессор), то есть то, на чем будет работать большинство ваших программ. Вторым параметром является процессор среды. Он позволил бы вам выполнить ассемблерный код MIPS на этом процессоре (проверено на собственном опыте). Процессор среды также достигает 333 МГц. Третий параметр управляет графическим ядром, под которым многие подразумевают, когда говорят об использовании «GPU «. GPU достигает 166 МГц. Скорости по умолчанию (если Вы не изменяете их) «222, 222, 111.»

Затем мы установим экран точно так же, как это делали в последнем учебном руководстве:

SetupCallbacks();
initGraphics();

Далее, если вспомнить урок 3, мы должны определить переменную типа SceCtrlData. Как и прежде, мы назовем ее «pad».

SceCtrlData pad;

Потом зададим еще две переменные и массив:

int i;
int selComponent = 0;
char filler[10];

Целое число, «i», позже будет использоваться в одном из наших циклов. Символьный массив — то, что мы будем использовать в качестве строки для вывода некоторой информации в дальнейшем. «selComponent» необходима для запоминания выбранного пользователем цветового компонента.

Далее мы объявим и зададим три переменные, которые будут хранить информацию о нашем фоне. Цвет составляется из трех компонентов: красный, зеленый, и синий. Максимальное значение каждого в 32-битовой глубине цвета – 255.

0 – число черного цвета, 255 – белый, комбинация цифр – какой-то промежуточный цвет. Иногда вы будете сталкиваться с тем, что шестнадцатеричные значения представляют собой цвета. В шестнадцатеричной системе исчисления применяются десятичные цифры от 0 до 9 и латинские буквы от A до F (F соответствует 16). Так, в 32-битной системе FF было бы равно 255 (16*16, потому что вы начинаете считать с нуля). Так, белый был бы «FFFFFF» (255 красных цветов, 255 синих цветов, 255 зеленых цветов). Так или иначе, мы будем использовать три переменные для хранения информации о цвете фона:

int bgR = 0;
int bgG = 0;
int bgB = 0;

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

Теперь мы собираемся вывести на экран текст с помощью функций в файле «graphics.h «, а не посредством pspDebugScreenPrintf. Нам необходимо сообщить программе, какие цвета мы хотим использовать:

Color highlightColor = RGB(200, 200, 200);
Color dimmedColor = RGB(100, 100, 100);
Color shadowColorH = RGB(55, 55, 55);
Color shadowColorD = RGB(55, 55, 55);

Прежде всего, я объясню, что делают данные строки. Они используют макрос RGB, о котором я рассказывал в уроке 4. Это делается для того, чтобы превратить компоненты цвета в единственный цвет. Тип данных «Color» определяется в файле «graphics.c «. Вы можете также видеть 32 (целое 32-битное число), применяемое в некоторых программах для использования цвета.

У нас есть четыре переменные, что объясняется нашим желанием выделить компонент, который в настоящий момент изменяет пользователь. Так, мы имеем два основных цвета для данной операции: один цвет для текста, который выделен, и один цвет для текста, который недоступен. Более того, располагая динамическим фоном (подразумевается то, что он может изменяться), мы собираемся использовать тень. Это поможет выделить наш текст на выбранном фоне. Я пробовал сочетать разные цвета. Не бойтесь играть цветами и выбирать то, что будет смотреться лучше.

Теперь добавим к нашему «игровому» циклу:

while(1) {
sceCtrlReadBufferPositive(&pad, 1);


Стандартный, бесконечный цикл «while» (с условием) и стандартная панель управления.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: