Возраст: 54 | |
Сообщений: 50 Благодарности: 1 / 2 Репутация: 2 Предупреждений: 0
Друзья Тут: 13 лет 10 месяцев
Всем привет после долгой разлуки! Надеюсь, что вы уже немного осилили c++, прочитав книгу из 3 Части. Вот новый Makefile Editor Сегодня я Вам расскажу о том как выводить значения переменных и как использовать цветной текст. Создаём папку с названием "print" на диске "C:\projects\psp". С помощью Makefile Editor'а создаём makefile. Заполняем поля как на скрине: Теперь приступим к коду: main.c
#include "pspSetup.h"
int main()
{
pspDebugScreenInit();
int i=89;//определяем переменную i и даём ей значение 89
textColor(RGB(255, 0, 0);//эта строчка задаёт цвет отображаемого текста
printf("%d", i);//%d нужно, чтобы наше число выводилось в десятичном виде
sceKernelExitGame();// выход из программы
return 0;
}
#include <pspkernel.h>// это самый главный заголовочный файл без него ничего работать не будет
#include <pspdebug.h>// это заголовочный файл для вывода на экран
#include <pspdisplay.h>// это заголовочный файл для работы экрана нашеё PSP
#define printf pspDebugScreenPrintf// чтобы не тащить за собой много кода сделаем определение printf будет обладать всеми теми же свойствами как и pspDebugScreenPrintf просто имя мы укоротили...
typedef unsigned char byte;// делаем определение типа byte т.к. его нет на psp, а byte - это беззнаковый char
#define RGB(r,g,b) (u32)(byte)(r)|(byte)(g)<<8)|(byte)(b)<<16))//определяем RGB для работы с цветом
#define textColor pspDebugScreenSetTextColor //делаем define чтобы не тащить за собой хвост..
#define setXY pspDebugScreenSetXY// делаем define чтобы не тащить за собой хвост..
PSP_MODULE_INFO("Print", 1, 2, 2);//эта строчка тоже обязательна! В кавычках мы пишем название программы. В нашем случае "Print"
int ExitCallback(int Arg1, int Arg2, void *Common)
{
sceKernelExitGame();
return 0;
}
int CallbackThread(SceSize Args, void *Argp)
{
int CallbackId;
CallbackId = sceKernelCreateCallback("Exit Callback", ExitCallback, NULL);
sceKernelRegisterExitCallback(CallbackId);
sceKernelSleepThreadCB();
return 0;
}
int SetupCallbacks(void)
{
int ThreadId = 0;
ThreadId = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if (ThreadId >= 0)
{
sceKernelStartThread(ThreadId, 0, 0);
}
return ThreadId;
//весь выше перечисленный код до PSP_MODULE_INFO нужен для выхода из программы
}
Так же числа можно выводить в 8-ой и 16-ой системе с помощью printf. Для этого вместо "%d" надо написать "%o" (для 8-ой) или "%x" (для16-ой). Добавим этот код:
#include "pspSetup.h"
int main()
{
pspDebugScreenInit();
int i=89;
textColor(RGB(255, 0, 0);//эта строчка задаёт цвет отображаемого текста
setXY(0, 0);//задаём позицию символа
printf("%d\n", i);// 10 система счисления
printf("%o\n", i);// 8 система счисления
printf("%x\n", i);// 16 система счисления
sceKernelExitGame();// выход из программы
return 0;
}
И так, немного об RGB(r, g, b): 1. r- значение красного цвета от 0 до 255 2. g- значение зелёного цвета от 0 до 255 3. b- значение синего цвета от 0 до 255 Цвет можно выбирать в стандартном Paint'е, а потом использовать в программе. На этом урок заканчивается, но это ещё не всё! Вам домашнее задание! Используя полученные знания из 2 Части и 4 Части(которую Вы читаете сейчас) написать программу для перевода числа из 10-ой системы счисления в 8-ую и 16-ую Плюс к этому надо сделать, чтобы пользователь изменял число(прибавлял или убавлял его значение) программа должна работать в цикле while. И должно получиться что-то типа такого:
Всем удачи! Ваш, MALEXKIY Кто сделает Д/з отправляйте в личку я гляну!
Сообщение отредактировано 16 декабря 2012 19:17. Редактировалось 6 раз(а)
"" and "PlayStation" are registered trademarks of Sony Computer Entertainment Inc. "", PSP and "UMD" are trademarks of Sony Computer Entertainment Inc. "", "XMB", "Memory Stick Duo" and the "Memory Stick Duo" logotype are trademarks of Sony Corp. All product titles, publisher names, trademarks, artwork and associated imagery are trademarks, registered trademarks and/or copyright material of the respective owners. All rights reserved.