Это третья часть урока 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.
Мы практически завершили нашу программу! В четвертой части учебного руководства мы будем дополнять программу.