- •Урок 1: Создание среды программирования, глава 1
- •Урок 1: Создание среды программирования, глава 2
- •Урок 1: Создание среды программирования, глава 3
- •Урок 1: Создание среды программирования, глава 4
- •Урок 1: Создание среды программирования, глава 5
- •Урок 2: Создание первой собственной программы, глава 1
- •Урок 2: Создание первой собственной программы, глава 2
- •Урок 2: Создание первой собственной программы, глава 3
- •Урок 3: Шпаргалки для начинающих программистов, глава 1
- •Урок 3: Шпаргалки для начинающих программистов, глава 2
- •Урок 3: Шпаргалки для начинающих программистов, глава 3
- •Урок 4: Простейшие способы обработки изображений, глава 1
- •Урок 4: Простейшие способы обработки изображений, глава 2
- •Урок 4: Простейшие способы обработки изображений, глава 3
- •Урок 4: Простейшие способы обработки изображений, глава 4
- •Урок 4: Простейшие способы обработки изображений, глава 5
- •Урок 5: Новые методы программирования на psp, глава 1
- •Урок 5: Новые методы программирования на psp, глава 2
- •Урок 5: Новые методы программирования на psp, глава 3
- •Урок 5: Новые методы программирования на psp, глава 4
- •Урок 5: Новые методы программирования на psp, глава 5
- •Урок 6: Добавление звука в программу, глава 1
- •Урок 6: Добавление звука в программу, глава 2
- •Урок 6: Добавление звука в программу, глава 3
- •Считывание всего файла, глава 1
- •Считывание всего файла, глава 2
- •Считывание всего файла, глава 3
- •Считывание всего файла, глава 4
- •Считывание всего файла, глава 5
Урок 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.
Мы практически завершили нашу программу! В четвертой части учебного руководства мы будем дополнять программу.
