Урок 5 нові методи програмування на psp, глава 1 - студопедія

Отже, ми створили середовище для розробки, написали нашу першу програму, вивчили деякі методи програмування і займалися програмуванням зображень. Чим же ми займемося тепер? Ви знаходитесь на цій сторінці і, тримаю парі, що не дивуєтесь тому, що вже дійшли до 5 уроку. Ми будемо покращувати наші навички програмування (кажучи «ми» я маю на увазі «вас») і познайомимося з розширеними поняттями.

Хоча «розширений» - це досить суб'єктивно. Ми як і раніше будемо формувати основу програмування в С (Сі), яка допоможе вам створити більш складні додатки. Після закінчення даного уроку ви повинні будете знати, як «розігнати» PSP до його істинної швидкості в 333 МГц, як вивести текст на екран (графічний текст, а не текст налагодження, використані раніше) і як працюють кольору в PSP.

Програму, яку ми збираємося створити в цьому уроці, називається «backround changer». Ми збираємося навчити користувача вибирати колір фону і створювати свій власний подібно до того, як ми виводили колірні зображення на екран.

По-перше, у нас є якийсь фон. У більшості випадків люди мають неправильне уявлення про «розгоні» PSP. Через своїх упереджень «розгін» асоціюється у них з тепловими проблемами і пошкодженнями апаратних засобів. Але справа не тільки в PSP. Насправді виробник PSP поставляє неповну комплектацію з даним товаром. Є кілька версій, чому Sony робить це. Одна з них полягає в тому, що максимальний «розгін» швидко буде розряджати батарею, що несприятливо вплине на популярність Sony (для нас, не турбуються з цього приводу, обертання UMD диска забирає набагато більше заряду батареї в порівнянні з завантаженням карти пам'яті). За іншою версією Sony хотів, щоб розробники написали оптимізований код. І третя (на мій погляд, більш ймовірна) полягає в наступному: вони хотіли дозволити розробникам використовувати максимальну швидкість тоді, коли вийдуть більш потужні ігри. Так чи інакше PSP зазвичай досягає 222 МГц. Якщо вам потрібна більша кількість заряду батареї для своїх програм, то опція - «розгін». Програма, яку ми будемо складати, не потребує такої харчуванні. Однак саме час розповісти про це поняття.
Отже, з цього моменту ми починаємо складати нашу програму. Вам необхідно завантажити даний zip-файл для цього уроку. Ви можете завантажити його тут. Ви повинні помістити main.c файл в ту ж саму папку, в яку витягаєте файли з zip-файла.

#include
#include
#include
#include
#include
#include "graphics.h"

Беручи до уваги попередні уроки, вам все це повинно бути знайоме. Єдине, що може здатися новим для вас, є включений файл psppower.h. Даний файл містить функції, які ми будемо використовувати для того, щоб змінити тактову частоту PSP.

За допомогою більш знайомого коду:

PSP_MODULE_INFO ( "Background Changer", 0, 1, 1);

#define RGB (r, g, b) ((r) | ((g)<<8)|((b)<<16))

Пам'ятайте, як в уроці 2 ми тільки згадали про цю рядку без докладного пояснення її функціонування. Думаю, зараз хороший момент для цього. Перший параметр - ваш ідентифікатор програми, як правило, це назва вашої програми. Другий параметр дозволяє вам привласнювати атрибути. Для більшості ваших програм знадобиться тільки 0, але якщо ви будете створювати більш потужні програми, то вам необхідно буде перейти на «0 × 1000". Третій параметр для основної версії, четвертий для допоміжної версії. Вони призначені тільки для того, щоб документувати номер версії вашої програми.

Тепер стандартні зворотні виклики:

/ * Exit callback * /
int exit_callback (int arg1, int arg2, void * common) sceKernelExitGame ();
return 0;
>

/ * Callback thread * /
int CallbackThread (SceSize args, void * argp) int cbid;

cbid = sceKernelCreateCallback ( "Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback (cbid);

/ * Sets up the callback thread and returns its thread id * /
int SetupCallbacks (void) int thid = 0;

thid = sceKernelCreateThread ( "update_thread", CallbackThread, 0 × 11, 0xFA0, 0, 0);
if (thid> = 0) sceKernelStartThread (thid, 0, 0);
>

На цьому закінчується частина установки в даному навчальному посібнику. Сміливо переходимо до другої частини даного уроку.

Схожі статті