|
Здравствуйте Гость ( Вход | Регистрация ) Доступ из РоссииДля сохранения достпа из России к сайту и форуму GBX
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() |
Кнопки Caanoo
| quasist |
Вторник, 09 ноября 2010, 23:55
Отправлено
#1
|
|
Sing along at the Opera ![]() Группа: Профи Сообщений: 3 391 Регистрация: 06 янв. 2006 Пользователь №: 14 791 ![]() ![]() |
название клавиши=код клавиши
A=0 X=1 B=2 Y=3 L=4 R=5 HOME=6 HOLD=7 HELP1=8 HELP2=9 CLICK=10 При нажатом HOLD все остальные клавиши "замораживаются" вместе с координатами джойстика. При нажатом CLICK можно двигать джойстиком и считывать координаты -------------------- 12 удачных сделок в барахолке gbx.ru
|
| sdm |
Четверг, 18 августа 2011, 10:32
Отправлено
#2
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
click - это нажатие на джойстик? Если так, то на него почему-то не реагирует.
|
| Hahahoj |
Воскресенье, 28 августа 2011, 13:17
Отправлено
#3
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Если обработка клика не включена разработчиком в мапинг используемых кнопок - он ни на что и не будет реагировать.
-------------------- |
| sdm |
Понедельник, 29 августа 2011, 10:06
Отправлено
#4
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
QUOTE (Hahahoj @ Воскресенье, 28 августа 2011, 13:17) Если обработка клика не включена разработчиком в мапинг используемых кнопок - он ни на что и не будет реагировать. Так в том-то и дело, что я его обрабатываю, но не реагирует. Остальные кнопки при этом нормально обрабатываются, только на эту не реагирует. Вот и подумал, что может надо как-то особенно его обрабатывать, не так как остальные кнопки. Я кстати и не встречал еще приложений где он работает, может в моей приставке он не работает. У кого-нибудь получалось клик задействовать? |
| quasist |
Понедельник, 29 августа 2011, 12:52
Отправлено
#5
|
|
Sing along at the Opera ![]() Группа: Профи Сообщений: 3 391 Регистрация: 06 янв. 2006 Пользователь №: 14 791 ![]() ![]() |
QUOTE (sdm @ Понедельник, 29 августа 2011, 10:06) Код обработки? -------------------- 12 удачных сделок в барахолке gbx.ru
|
| sdm |
Понедельник, 29 августа 2011, 13:32
Отправлено
#6
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
QUOTE (quasist @ Понедельник, 29 августа 2011, 12:52) Примерный привожу, так как за точным надо до дома добраться: CODE enum CaanooButtons { CAANOO_BUTTON_A = 0, ... CAANOO_BUTTON_JOY = 10 }; ... SDL_Event event; while ( SDL_PollEvent(&event) ) { switch( event.jbutton.button ) { ... case CAANOO_BUTTON_JOY: { ... break; } ... } } Вобщем суть в том что если CAANOO_BUTTON_JOY заменить на другую кнопку, то на нее реагирует, а на эту не реагирует. |
| Hahahoj |
Понедельник, 29 августа 2011, 18:47
Отправлено
#7
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Реальный код приведи, смысл от настоящей реализации может отличаться кардинально.
Вот кусочек SDK-шки: CODE enum { // 버튼 상태 = 단말기 / 조이스틱 // 그린 아시아 칩셋 사용 조이스틱 의존 BTN_A = 0, // A / 1 BTN_X = 1, // X / 2 BTN_B = 2, // B / 3 BTN_Y = 3, // Y / 4 BTN_L = 4, // L / 5, L1 BTN_R = 5, // R / 6, L2 BTN_HOME = 6, // Home / 7, R1 BTN_HOLD = 7, // Hold / 8, R2 BTN_HELP1 = 8, // Help I / Select BTN_HELP2 = 9, // Help II / Start BTN_TACT = 10, // Tact / L Thumb Stick }; -------------------- |
| sdm |
Вторник, 30 августа 2011, 09:55
Отправлено
#8
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
Вот реальный код (чтобы не загромождать пост вырезал не имеющее отношения к проблеме):
io.h: CODE ... enum CaanooButtons { CAANOO_BUTTON_A = 0, CAANOO_BUTTON_X = 1, CAANOO_BUTTON_B = 2, CAANOO_BUTTON_Y = 3, CAANOO_BUTTON_L = 4, CAANOO_BUTTON_R = 5, CAANOO_BUTTON_HOME = 6, CAANOO_BUTTON_1 = 8, CAANOO_BUTTON_2 = 9, CAANOO_BUTTON_JOY = 10, ... }; ... io.cpp: CODE ... int IO::IsButtonDown (int pBut) { return SDL_JoystickGetButton( m_joy, pBut ); } ... int IO::Pollkey() { SDL_Event event; while ( SDL_PollEvent(&event) ) { switch (event.type) { ... case SDL_JOYBUTTONDOWN: return event.jbutton.button; ... } } return -1; } main.cpp: CODE ... IO mIO; ... while( !mIO.IsButtonDown( CAANOO_BUTTON_HOME ) ) { ... int mKey = mIO.Pollkey(); switch (mKey) { case ( CAANOO_AXIS_RIGHT ): case ( CAANOO_BUTTON_R ): { ... break; } case ( CAANOO_AXIS_LEFT ): case ( CAANOO_BUTTON_L ): { ... break; } case ( CAANOO_BUTTON_A ): { ... break; } case ( CAANOO_BUTTON_X ): { ... break; } case ( CAANOO_BUTTON_JOY ): case ( CAANOO_BUTTON_Y ): { ... break; } case ( CAANOO_BUTTON_HOME ): { exit(0); } } На всякий случай прикладываю полный код и файл проекта для кодеблокс.
tts.zip ( 12.1кб )
Кол-во скачиваний: 550 |
| Hahahoj |
Вторник, 30 августа 2011, 16:48
Отправлено
#9
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
А вывести mKey и посмотреть шо там лежит при изменениях значений пробовал?
У тебя прошивка какая? И это... http://www.gp32x.com/board/index.php?showtopic=59429 Будет весьма полезно. Квазист тут подсказал, что проверить клик можно на Флешчасмере Еве, там с помощью этой кнопки поднимаемся по лестницам и заходим в магазины (с третьего уровня). Сообщение отредактировал Hahahoj - Вторник, 30 августа 2011, 17:43 -------------------- |
| sdm |
Вторник, 30 августа 2011, 19:36
Отправлено
#10
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
QUOTE (Hahahoj @ Вторник, 30 августа 2011, 16:48) А вывести mKey и посмотреть шо там лежит при изменениях значений пробовал? Попробовал - там ничего когда эту кнопку жму. Видимо она у меня не работает. Еще попробовал вот этот тестовый пример собрать, который отображает какая кнопка нажата - там тоже не реагирует. QUOTE У тебя прошивка какая? 1.6.0 QUOTE И это... http://www.gp32x.com/board/index.php?showtopic=59429 Будет весьма полезно. Спасибо, посмотрю. За свой движок я не брался, пока просто пробую портировать уже готовые приложения. |
| Hahahoj |
Вторник, 30 августа 2011, 19:44
Отправлено
#11
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Ну, насчет портирования - я давно заметил:
http://wiz.rusbase.net/forum/viewtopic.php?t=1021 Надеюсь до ума доведешь, но сразу предупрежу - Визовская версия фрихерос слетала у меня довольно часто. -------------------- |
| sdm |
Среда, 31 августа 2011, 13:13
Отправлено
#12
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
QUOTE (Hahahoj @ Вторник, 30 августа 2011, 19:44) Ну, насчет портирования - я давно заметил: http://wiz.rusbase.net/forum/viewtopic.php?t=1021 Надеюсь до ума доведешь, но сразу предупрежу - Визовская версия фрихерос слетала у меня довольно часто. Ого, круто, уже новость даже есть ) Насчет доведения до ума - если будут сообщать об ошибках, то по возможности могу исправлять, сам-то играть в них пока не собирался и не уверен, что соберусь. Заметил что новую версию исходников выложили. Для начала попробую ее собрать. Еще есть идея сделать скроллинг джойстиком, и возможность назначения кнопок джойстика для других действий. |
| Hahahoj |
Четверг, 01 сентября 2011, 11:15
Отправлено
#13
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Было б отлично, мне как раз вторые герои больше всего нравятся. Но к сожалению поиграть на Визе так толком из-за глюков и не получилось.
-------------------- |
| sdm |
Четверг, 01 сентября 2011, 15:53
Отправлено
#14
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
Сделал. Можно здесь взять пока на openhandhelds не обновилось.
|
| quasist |
Четверг, 01 сентября 2011, 16:24
Отправлено
#15
|
|
Sing along at the Opera ![]() Группа: Профи Сообщений: 3 391 Регистрация: 06 янв. 2006 Пользователь №: 14 791 ![]() ![]() |
Может проект стоит в отдельную тему вынести?
-------------------- 12 удачных сделок в барахолке gbx.ru
|
| sdm |
Четверг, 01 сентября 2011, 16:47
Отправлено
#16
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
|
| Hahahoj |
Четверг, 01 сентября 2011, 17:03
Отправлено
#17
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Так. Проверить клик можно еще проще - чего то я стормозил.
Заходим в настройки консоли, выбираем test mode, там жмем L+R, появляется макет консоли, на ней проверяем работоспособность кнопок. Если не работает - попробуй либу от Рикку - там точно работало, либо разбирайся в коде, там должен быть один принцип для срабатывания всех кнопок. Грабли могут быть также из-за того что у enum-а нет предопределенной правилами языка типизации (но сомневаюсь), тип значения заданного в нем отдается на откуп компилятору, а там вполне может зависить от настроек компилятора. Если хочешь точного соответствия - попробуй сменить на const. Вообще-больше всего ошибка с кликом смахивает на несоответствие типов переменных (возможно возвращаемого значения) тому что ты должен в итоге получить. В любом случае с исходниками библиотеки ввода от Рикку этой проблемы нет -------------------- |
| sdm |
Суббота, 03 сентября 2011, 16:28
Отправлено
#18
|
![]() Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 155 Регистрация: 11 авг. 2011 Пользователь №: 42 034 ![]() ![]() |
QUOTE (Hahahoj @ Четверг, 01 сентября 2011, 17:03) Заходим в настройки консоли, выбираем test mode, там жмем L+R, появляется макет консоли, на ней проверяем работоспособность кнопок. Да и тут не работает. QUOTE Если не работает - попробуй либу от Рикку - там точно работало, либо разбирайся в коде, там должен быть один принцип для срабатывания всех кнопок. Библиотеку от Рикку тоже попробовал - и в ней не работает. В общем ладно. Спасибо за помощь, уже смирился с тем, что клик не работает, можно и без него обойтись.. |
![]() ![]() |
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
| Упрощённая версия | Сейчас: Пт., 23 окт. 2026, 04:17 |




Вторник, 09 ноября 2010, 23:55















