PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для PSP (https://www.pspx.ru/forum/forumdisplay.php?f=101)
-   -   Помогите разобраться.. (https://www.pspx.ru/forum/showthread.php?t=84120)

LeshiyGS 13.10.2009 01:32

Помогите разобраться..
 
Я новичек в этом деле, но никак не могу получить обработку кнопок в prx плагине, если на этом сайте есть человек который может помочь, пожалуйста ответе... а если есть возможность то просто выложите код prx плагина который при нажатие на оба тригера пишет на экране например hello world.. заранее большое спасибо..

l3VGV 13.10.2009 01:39

Опрос кнопок по таймеру не работает?



Код:

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) и так далее...

l3VGV 13.10.2009 01:45

ну вот я тебе кусок кода дал. вызываешь сетуп инпут в начале работы модуля, а там пишешь что надо в глобальные переменные. ну а потом гдето в основном потоке из проверяешь. можно и без отдельного потока, но тогда во время тяжёлой работы система не будет реагировать на кнопки. а это бесит.

LeshiyGS 13.10.2009 01:47

мда)) легко тебе говорить.. я 50% написаного тобой только понял))
InputThread - понял
SetupInput - почти не понял
)))

l3VGV 13.10.2009 01:49

общая идея в том что ничем работа в модуле не отличается от обычной. либо тебе основное приложение будет сигналить о вводе или сам определяешь. там 2 типа функций, котрорый удаляет из очереди и который оставляет. в доках есть.

LeshiyGS 13.10.2009 01:54

на доки ссылку можно? я так понял что во второй функции ты создаешь Thead который говорит о том нажата кнопка или нет.. вот только я не пойму как спросить нажата ли.. я полный новичек))

l3VGV 13.10.2009 01:57

Доки есть в комплекте к сдк, они компилятся или устанавливаются из комплекта мингвовского минималиста. там есть и коды кнопок и как работать с буфером нажатий.

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((


Текущее время: 06:00. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.