Просмотр полной версии : Помогите разобраться..
LeshiyGS
13.10.2009, 01:32
Я новичек в этом деле, но никак не могу получить обработку кнопок в prx плагине, если на этом сайте есть человек который может помочь, пожалуйста ответе... а если есть возможность то просто выложите код prx плагина который при нажатие на оба тригера пишет на экране например hello world.. заранее большое спасибо..
Опрос кнопок по таймеру не работает?
int InputThread(SceSize args, void *argp)
{
while(run)
{
sceCtrlPeekBufferPositive(&pad, 1);
sceKernelDelayThread(1);
if (pad.Buttons & PSP_CTRL_HOME)
run = 0;
}
return 0;
}
void SetupInput( void)
{
SceUID itid = sceKernelCreateThread("Input thread",
InputThread,
0x18, 256 * 1024, PSP_THREAD_ATTR_USER, 0);
if (itid >= 0)
sceKernelStartThread(itid, 0, 0);
}
LeshiyGS
13.10.2009, 01:42
хм... опрос по таймеру это как перерыл кучу примеров но по таймеру не видел..
самый обычный способ.. проверка SceCtrlData pad; if (pad.Buttons != 0) и так далее...
ну вот я тебе кусок кода дал. вызываешь сетуп инпут в начале работы модуля, а там пишешь что надо в глобальные переменные. ну а потом гдето в основном потоке из проверяешь. можно и без отдельного потока, но тогда во время тяжёлой работы система не будет реагировать на кнопки. а это бесит.
LeshiyGS
13.10.2009, 01:47
мда)) легко тебе говорить.. я 50% написаного тобой только понял))
InputThread - понял
SetupInput - почти не понял
)))
общая идея в том что ничем работа в модуле не отличается от обычной. либо тебе основное приложение будет сигналить о вводе или сам определяешь. там 2 типа функций, котрорый удаляет из очереди и который оставляет. в доках есть.
LeshiyGS
13.10.2009, 01:54
на доки ссылку можно? я так понял что во второй функции ты создаешь Thead который говорит о том нажата кнопка или нет.. вот только я не пойму как спросить нажата ли.. я полный новичек))
Доки есть в комплекте к сдк, они компилятся или устанавливаются из комплекта мингвовского минималиста. там есть и коды кнопок и как работать с буфером нажатий.
LeshiyGS
13.10.2009, 02:22
как спросить о нажатии я так и не вьехал(( кстати при юзании SetupInput xmb виснет
LeshiyGS добавил 13-10-2009 в 02:22
уу спс получилось и без второй функции
LeshiyGS
19.10.2009, 00:22
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
#include <string.h>
PSP_MODULE_INFO("TESTPRX", 0x1000, 1, 1);
typedef unsigned char byte;
int menu = 0;
#define RGB(r,g,B) ((u32)((byte)(r)|((byte)(g) << 8)|((byte)(B) << 16)))
#define printf pspDebugScreenPrintf
SceCtrlData pad;
int main(int argc, char **argv)
{
pspDebugScreenInit();
while (1)
{
sceKernelDelayThread(1000);
sceCtrlReadBufferPositive(&pad, 1);
if (pad.Buttons & PSP_CTRL_RTRIGGER){
if (menu) menu = 0;
else menu = 1;
}
if (menu){
pspDebugScreenSetXY(0, 0);
pspDebugScreenSetBackColor(RGB(255, 0, 0));
printf("First Menu");
pspDebugScreenSetXY(0, 1);
printf("Play Station Portable");
}
}
sceKernelSleepThread();
return 0;
}
void* getModuleInfo(void)
{
return (void *) &module_info;
}
int main_thread (void) {
return 0;
}
int module_stop (void) {
return 0;
}
Подскажите почему так.. кроме плагина неработает ничего.. это раз.. фон моргает это 2 и еще отклик от кнопки работает как то странно это 3((
vBulletin® v3.8.7, Copyright ©2000-2025, vBulletin Solutions, Inc. Перевод: zCarot