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

Это третья часть урока 5. Если вы не завершили первую и вторую части, то прочитайте их сейчас.
Теперь будем оперировать панелью управления. Нам необходимо, чтобы стрелки «вверх» и «вниз» позволяли выбрать тот компонент цвета, который пользователь желает отредактировать. Мы хотим, чтобы стрелки «влево» и «вправо» настроили цвет:

if(pad.Buttons & PSP_CTRL_UP) {
if(selComponent > 0) {
selComponent—;
}
for(i=0; i<10; i++) {
sceDisplayWaitVblankStart();
}
} else if(pad.Buttons & PSP_CTRL_DOWN) {
if(selComponent < 2) {
selComponent++;
}
for(i=0; i<10; i++) {
sceDisplayWaitVblankStart();
}
}

Данный блок кода выполняет первую половину задуманного. Он постепенно уменьшает переменную, если нажата стрелка «вверх» (поскольку мы хотим начать с верхнего уровня; 0 будет самым верхним цветом, 1 – серединой, 2 – нижним). Если нажата стрелка «вниз», то переменная постепенно увеличивается. Имеются циклы для приостановления программы в тот момент, когда одна из кнопок нажата. Таким образом, написанный выше блок кода позволяет пользователю управлять опциями вместо того, чтобы утомительно прокручивать «вверх» или «вниз» для просмотра.

Следующая часть кода управляет стрелками «влево» и «вправо»:

if(pad.Buttons & PSP_CTRL_RIGHT) {
switch(selComponent) {
case 0:
bgR++;
break;
case 1:
bgG++;
break;
case 2:
bgB++;
break;
default:
//SHOULD NEVER EXECUTE
break;
}
} else if(pad.Buttons & PSP_CTRL_LEFT) {
switch(selComponent) {
case 0:
bgR—;
break;
case 1:
bgG—;
break;
case 2:
bgB—;
break;
default:
//SHOULD NEVER EXECUTE
break;
}
}

Вы смотрите на этот код и, вероятно, спрашиваете себя: «Сомнительное слово insert является оператором структуры switch?» Все это довольно просто. В основном конструкция if / else заключает все в одном. Задается переменная «switch(yourVariable) «, затем сравнивается с несколькими возможными случаями. Если нет соответствия ни с одним из случаев, то выполняется случай по умолчанию. В нашей программе переменная «selComponent» должна принимать значения 0, 1, или 2 (так как выше мы ограничили круг значений). В главной операторе структуры switch, если «selComponent» равна 0, наша переменная «bgR» будет постепенно увеличиваться. Если она равняется 1, то «bgR» также увеличивается. Аналогично происходит и при «selComponent «, равной 2. Оператор break выходит из структуры switch.

Мы практически завершили нашу программу! В четвертой части учебного руководства мы будем дополнять программу.


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



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