
- •Урок 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, глава 4
Перед вами четвертая часть урока 5. Если вы не прочитали первую, вторую и третью части, то ознакомьтесь с ними сейчас.
Итак, у нас есть код, который позволяет нам выбрать компонент цвета и изменять переменную, отвечающую за это цвет. Следующим шагом нам нужно фактически вывести программу на экран. Наш пользовательский интерфейс (ИП) будет состоять из текста, рассказывающего пользователю о том, что является компонентом цвета и фоном.
Помните, что цвета могут быть в пределах 0-255. Нам следует удостовериться в том, что не происходит выхода за рамки указанного диапазона, когда пользователь просматривает их путем прокрутки. Поэтому будем использовать серию операторов if/else для предотвращения выхода за возможные границы.
if(bgR < 0) { bgR = 0; } else if(bgR > 255) { bgR = 255; } if(bgG < 0) { bgG = 0; } else if(bgG > 255) { bgG = 255; } if(bgB < 0) { bgB = 0; } else if(bgB > 255) { bgB = 255; }
Это довольно просто объяснить. Если значение какого-либо компонента выходит из диапазона, мы должны установить возможную верхнюю и нижнюю границы.
Теперь заполним фоновый слой таким цветом, который задают наши переменные:
fillScreenRect(RGB(bgR, bgG, bgB), 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
«fillScreenRect()» представляет собой функцию, которая определена в «graphics.c«. Она заполняет прямоугольную часть экрана необходимым цветом. Требуется пять параметров. Первым является цвет, который мы хотим закрасить прямоугольник. Вторым – x позиция прямоугольника. Третьим – y позиция прямоугольника. Четвертым – ширина прямоугольника. Пятым – высота прямоугольника.
Далее запишем все, что касается фона:
sprintf(filler, " RED: %i", bgR); if(selComponent == 0) { printTextScreen(11, 10, filler, shadowColorH); printTextScreen(10, 10, filler, highlightColor); } else { printTextScreen(11, 10, filler, shadowColorD); printTextScreen(10, 10, filler, dimmedColor); }
Вы должны помнить функцию «sprintf()» из урока 4. Она выводит форматированные данные в строку. На этот раз, используем переменную. Мы хотим вывести на экран и цвет (красный), и значение (bgR). Мы осуществляем данную операцию таким же способом, что и в уроке 3 при выводе целого числа (с модификатором «%i«). После выбора компонента мы применяем функцию «printTextScreen ()» из «graphics.c» для того, чтобы вывести нашу строку на экран. Функция требует четыре параметра. Первым является x позиция, вторым – y позиция, третьим – строка, четвертым – цвет. Использование операторов if/else объясняется тем, что мы хотим вывести на экран текст в различном цвете. Ранее мы использовали и тень.
Сейчас осуществим те же самые действия для других цветов:
sprintf(filler, "GREEN: %i", bgG); if(selComponent == 1) { printTextScreen(11, 20, filler, shadowColorH); printTextScreen(10, 20, filler, highlightColor); } else { printTextScreen(11, 20, filler, shadowColorD); printTextScreen(10, 20, filler, dimmedColor); }
sprintf(filler, " BLUE: %i", bgB); if(selComponent == 2) { printTextScreen(11, 30, filler, shadowColorH); printTextScreen(10, 30, filler, highlightColor); } else { printTextScreen(11, 30, filler, shadowColorD); printTextScreen(10, 30, filler, dimmedColor); }
Мы на заключительном этапе, честное слово:) В пятой части мы окончательно завершим нашу программу и создадим Makefile.