|
Программирование для PSP Вы программист? Welcome сюда... |
06.01.2010, 13:36
|
Сообщение: #1 (858143)
|
Модель консоли: PSP-1004
Прошивка: 6.60 PROMOD
Другие консоли: iPad 3 WiFi
Регистрация: 18.12.2006
Адрес: Москва
Возраст: 57
Сообщений: 46,246
Вы сказали Спасибо: 26,991
Поблагодарили 42,528 раз(а) в 12,172 сообщениях
Сила репутации: 10Репутация: 41723 
(репутация неоспорима)
|
Коды кнопок PSP
PSP_CTRL_SELECT => 0x00000001
PSP_CTRL_START => 0x00000008
PSP_CTRL_UP => 0x00000010
PSP_CTRL_RIGHT => 0x00000020
PSP_CTRL_DOWN => 0x00000040
PSP_CTRL_LEFT => 0x00000080
PSP_CTRL_LTRIGGER => 0x00000100
PSP_CTRL_RTRIGGER => 0x00000200
PSP_CTRL_TRIANGLE => 0x00001000
PSP_CTRL_CIRCLE => 0x00002000
PSP_CTRL_CROSS => 0x00004000
PSP_CTRL_SQUARE => 0x00008000
PSP_CTRL_HOME => 0x00010000 // только в режиме ядра либо в user на ядре 6.xx
PSP_CTRL_HOLD => 0x00020000
PSP_CTRL_NOTE => 0x00800000
PSP_CTRL_SCREEN => 0x00400000 // только в режиме ядра
PSP_CTRL_VOLUP => 0x00100000 // только в режиме ядра
PSP_CTRL_VOLDOWN => 0x00200000 // только в режиме ядра
PSP_CTRL_WLAN_UP => 0x00040000 // только в режиме ядра
PSP_CTRL_REMOTE => 0x00080000 // только в режиме ядра
PSP_CTRL_DISC => 0x01000000 // только в режиме ядра
PSP_CTRL_MS => 0x02000000 // только в режиме ядра
Сочетание кнопок происходит путём сложения их байтов, например:- PSP_CTRL_VOLUP + PSP_CTRL_VOLDOWN = 0х100000 + 0х200000 = 0х300000
- PSP_CTRL_HOME + PSP_CTRL_START = 0x010000 + 0x000008 = 0x010008
- PSP_CTRL_LTRIGGER + PSP_CTRL_CROSS = 0x000100 + 0x004000 = 0x004100
Пример использования в кодах программ:
while(!done)
{
pspDebugScreenSetXY(0, 2);
sceCtrlReadBufferPositive(&pad, 1);
printf("Analog X = %d ", pad.Lx);
printf("Analog Y = %d \n", pad.Ly);
if (pad.Buttons != 0)
{
if (pad.Buttons & PSP_CTRL_SQUARE)
{
printf("Нажата кнопка Квадрат \n");
}
if (pad.Buttons & PSP_CTRL_TRIANGLE)
{
printf("Нажата кнопка Треугольник \n");
}
if (pad.Buttons & PSP_CTRL_CIRCLE)
{
printf("Нажата кнопка Круг \n");
}
if (pad.Buttons & PSP_CTRL_CROSS)
{
printf("Нажата кнопка Крест \n");
}
if (pad.Buttons & PSP_CTRL_UP)
{
printf("Нажата кнопка Вверх \n");
}
if (pad.Buttons & PSP_CTRL_DOWN)
{
printf("Нажата кнопка Вниз \n");
}
if (pad.Buttons & PSP_CTRL_LEFT)
{
printf("Нажата кнопка Влево \n");
}
if (pad.Buttons & PSP_CTRL_RIGHT)
{
printf("Нажата кнопка Вправо \n");
}
if (pad.Buttons & PSP_CTRL_START)
{
printf("Нажата кнопка START \n");
}
if (pad.Buttons & PSP_CTRL_SELECT)
{
printf("Нажата кнопка SELECT \n");
}
if (pad.Buttons & PSP_CTRL_LTRIGGER)
{
printf("Нажата кнопка Левый триггер \n");
}
if (pad.Buttons & PSP_CTRL_RTRIGGER)
{
printf("Нажата кнопка Правый триггер \n");
}
}
}
Последний раз редактировалось ErikPshat; 04.02.2015 в 06:52.
|
|
|
Эти 8 пользователя(ей) сказали Спасибо ErikPshat за это полезное сообщение:
|
|
09.01.2010, 20:20
|
Сообщение: #2 (859154)
|
Регистрация: 06.02.2006
Сообщений: 95
Вы сказали Спасибо: 14
Поблагодарили 12 раз(а) в 7 сообщениях
Сила репутации: 1Репутация: 12 
(на пути к лучшему)
|
|
|
|
09.01.2010, 21:13
|
Сообщение: #3 (859174)
|
Регистрация: 28.11.2009
Сообщений: 361
Вы сказали Спасибо: 58
Поблагодарили 139 раз(а) в 100 сообщениях
Сила репутации: 1Репутация: 142 
(скоро придёт к известности)
|
~cHendler~,
pad.Lx, pad.Ly соответственно оси X и Y. Значение после "sceCtrlReadBufferPositive(&pad, 1);" изменяется от -128 до 127. Где ноль это центр джойстика. При этом учитывай некоторую мертвую зону, где-то в 20-50 единиц.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо ivy за это полезное сообщение:
|
|
07.02.2010, 23:39
|
Сообщение: #4 (865785)
|
Прошивка: 5.00m33-6
Другие консоли: Tetris,Calculator
Регистрация: 18.08.2007
Адрес: Домодедово
Возраст: 52
Сообщений: 203
Вы сказали Спасибо: 21
Поблагодарили 123 раз(а) в 49 сообщениях
Сила репутации: 1Репутация: 123 
(скоро придёт к известности)
|
а кнопки типа (volup voldown hold screen note etc..) в юсер можно доставать с помошью модулей, которые не посредственно грузятся в кернел!
|
|
|
Этот пользователь сказал Спасибо Vcardpsp за это полезное сообщение:
|
|
18.05.2013, 13:39
|
Сообщение: #5 (1072044)
|
Модель консоли: PSP-3004
Прошивка: 6.60 Pro-C
Другие консоли: PSOne,PS2,PS3
Регистрация: 17.09.2008
Адрес: Мурманск
Сообщений: 16
Вы сказали Спасибо: 2
Поблагодарили 4 раз(а) в 3 сообщениях
Сила репутации: 1Репутация: 4 
(с надеждой на лучшее)
|
хм,а зажатие кнопки как реализовывается?)
//generated by Quake, do not modify||Все еще что-то делаю на PSP.
|
|
|
19.05.2013, 00:28
|
Сообщение: #6 (1072068)
|
Модель консоли: PSP-1004
Прошивка: 6.61 PROMOD-C2p
Другие консоли: Все PSP, все PSV, SCPH-1002, SCPH-102, SCPH-77008, CECH-4208C, SCPH-1000R
Регистрация: 19.03.2008
Адрес: Россия
Сообщений: 5,733
Вы сказали Спасибо: 819
Поблагодарили 3,835 раз(а) в 2,013 сообщениях
Сила репутации: 1Репутация: 3835 
(репутация неоспорима)
|
st1x51,
что значит "зажатие"? Пока держишь, код клавиши в переменной. Отпустил - код вычли.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 04:50. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7 Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.
|
|
|