- •Урок 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
Урок 3: Шпаргалки для начинающих программистов, глава 3
Сейчас вашему вниманию будет представлена заключительная, третья часть третьего урока. Если вы не читали первую и вторую части, рекомендуем возвратиться и ознакомиться с ними.
Нам необходимо увеличить наш счетчик, чтобы каждый раз после прохождения тела цикла счетчик увеличивался на единицу. Данную операцию можно осуществить одним из двух способов. Первый, более сложный, способ предполагает определить «counter = counter+1;». Все отлично работает, но можно выполнить это проще. Для постепенного увеличения переменной использовать оператор «++»:
counter++;
Он позволяет делать те же самые вещи, как и «counter = counter+1;», но более изящно. Вы так не думаете?
Далее нам следует вставить короткую паузу, чтобы кнопка «HOME» начала функционировать. В данном случае будем использовать цикл «for». Указанный цикл отличается от цикла «while» только битами. Требуется три параметра. Первым является инициализация переменной для запуска цикла. Вторым – оператор управления, который выполняет ту же самую работу, что и оператор управления в цикле «while». Третьим – то, что происходит с переменной в конце каждого цикла.
for(i=0; i<5; i++) {sceDisplayWaitVblankStart();}
Благодаря этому строка кода выполняется 5 раз (когда i = 0, 1, 2, 3, и 4). В итоге, мы должны закончить код блока, который цикл закрывает простой квадратной скобкой:
}
До конца программы осталось немного. Итак, нужен код, который будет следовать после оператора управления «break». Выводим на экран простое сообщение и заключительное количество нашего счетчика. Таким образом, мы очистим экран и используем еще два раза оператор «printf», как мы делали ранее. Добавляем:
pspDebugScreenClear(); printf("Counter Finished."); printf("Final Count: %i", counter);
Наш код составлен! А теперь сделаем небольшой косметический ремонт в Makefile файле, написанном во втором уроке.
Makefile должен быть изменен с целью представления нашей новой программы. Откройте файл и измените название на более подходящее, по вашему мнению. Я назвал «Counter Program». Кроме того, я изменил TARGET = на «count» (подсчет).
После построения вашей программы, протестируйте ее. Итак, вы получили базовые знания, которые помогут вам создавать собственные программы. Ознакомьтесь с дополнительными учебными руководствами по программированию С, которые предоставят вам более полную информацию о наиболее сложных логических структурах (if/if else/else), циклах, функциях, указателях и т.д. Программирование на PSP имеет много особенностей, но основной материал представлен здесь. Удачи и приятного времяпровождения!
Не забудьте подписаться на RSS нашего сайта (или хотя бы занести сайт в закладки в браузере), чтобы быть в курсе и не пропустить обновления нашего курса.
Если вам понравились эти уроки и у вас есть лишняя пара баксов, вы можете отблагодарить автора или соавторов курса Или, если у вас есть свой веб-сайт, разместите ссылку на этот урок.
Урок 4: Простейшие способы обработки изображений, глава 1
После выхода Урока 3 автор оригинала данного курса был завален электронными письмами, sms, телефонными звонками читателей с просьбами о продолжении данного курса. Причем, все в один голос просили разместить урок по созданию изображений для программ. И вот, наконец-таки, после непродолжительной паузы, готов очередной урок, в которой автор оригинала удовлетворил все просьбы читателей
Надеюсь, что на этом этапе вы уже установили MinPSPW и IDE (или CYGWIN и PSP toolchain), знаете, как скомпилировать исходный код в EBOOT, готовым для запуска на PSP, и имеете некоторые представления о языке программирования С и ознакомлены с азами. Если же вы решили, что вы сможете подхватить все на лету и прыгнуть с места в карьер — не получится, так что сначала ознакомьтесь с уроками 1, 2, 3 и возвращайтесь к нам…
Для этого учебного руководства нам необходим png.h, который первоначально не был включен в PSP toolchain, поэтому если вы изначально скачали какую-то древнюю версию, то нужно поискать более новую версию. Если у вас последняя версия PSP toolchain или вы пользуетесь MinPSPW, то смело пропускаем данный шаг.
В качестве примера этого урока были использованы исходные коды Psilocybeing, за что ему выражается благодарность. Изначально я планировал показать вам собственный пример программы (адаптированной исходный код игры Snake), но она является сложнее первой и слегка старовата. Основное преимущество программы Psilocybeing – это то, что все функции и типы данных определены во внешних файлах, что облегчает вам задачу по созданию собственных приложений.
Прежде чем творить чудеса, мы должны установить новые библиотеки из SVN (Пользователи MinPSPW пропускают ниже написанные шаги, благо у них уже все необходимое есть, и могут смело переходить ко второй главе данного урока). Вы спросите, что же такое SVN? Итак, SVN – это система управления версиями (сокращение от «subversion»). Мы будем использовать некоторый код для увеличения степени функциональности вашему компилятору. Необходимыми пакетами будут zlib, и libpng. zlib — библиотека сжатия и libpng позволят нам работать с файлами формата PNG (тип изображения). Для установления данных библиотек, мы должны ввести в Bash CYGWIN Shell:
svn checkout svn://svn.pspdev.org/psp/trunk/zlib
«Checkout» — путь загрузки. В итоге, мы скачиваем zlib в папку, названную «zlib». Это займет минуту, далее нам необходимо скомпилировать новую библиотеку. Поместим «cd» в новую папку cd zlib. Теперь мы находимся в папке zlib и готовы к составлению. Стоит отметить, что если нам нужно скомпилировать что-то другое, то мы также обратимся к типу «make». Таким образом, мы создали нашу библиотеку. Сейчас поместим созданные файлы в том месте, к которому компилятор сможет получить доступ. Все! Мы установили zlib. Это было не просто? Далее переходим к установке libpng. Осуществим те же самые действия, кроме одного: заменим «cd zlib» на «cd libpng».
svn checkout svn://svn.pspdev.org/psp/trunk/libpng cd libpng make make install
Итак, мы готовы использовать PNG в нашей программе.
После этого удалим установочные файлы. Чтобы удалить в системе Linux (которую эмулирует CYGWIN), используем команду «rm». Более того, нам нужно удалить не один файл, а целую папку и все ее содержимое. С этой целью добавим модификатор «-R» для рекурсивного удаления. Также мы будем применять модификатор «-f», который позволит удалить файлы, защищенные от записи. Далее возвращаем «cd» в корневой каталог и удаляем временные папки «zlib» и «libpng», которые мы только что создали:
rm -Rf zlib rm -Rf libpng
По завершению данного процесса, мы готовы приступить к программированию. Собственно, чем мы и займемся во второй главе данного урока, поэтапно расписав наши действия.
