|
Программирование Вопросы связанные с программированием в JAVA |
21.12.2008, 15:29
|
#1
|
AnyKey`щик
Регистрация: 30.11.2008
Сообщений: 18
Написано одно полезное сообщение
|
GameCanvas и getKeyStates()
Что-то я не понимаю, getKeyStates() не хочет реагировать на нажатие клавиш 2, 4, 5, 6, 8, софт клавиш, *, #, 0. Точнее функция возвращает ноль. Как в GameCanvas обрабатывать эти клавиши?
|
(Offline)
|
|
21.12.2008, 17:20
|
#2
|
AnyKey`щик
Регистрация: 20.12.2008
Сообщений: 13
Написано 4 полезных сообщений (для 12 пользователей)
|
Ответ: GameCanvas и getKeyStates()
Клавиши 2, 4, 5, 6, 8 это UP_PRESSED, LEFT_PRESSED, FIRE_PRESSED, RIGHT_PRESSED и DOWN_PRESSED соответственно.
Вот и пиши:
if ((getKeyStates() & LEFT_PRESSED) != 0) {
// Обработчик нажатия влево
}
else if ((getKeyStates() & RIGHT_PRESSED) != 0) {
// Обработчик нажатия вправо
}
* и # на некоторых телефонах соответствуют GAME_A_PRESSED и GAME_B_PRESSED, на остальных же телефонах они не соответствуют никаким параметрам.
__________________
Use a music as a weapon
|
(Offline)
|
|
21.12.2008, 19:40
|
#3
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: GameCanvas и getKeyStates()
Еще бывает такое соответствие:
GAME_A - 1
GAME_B - 3
GAME_C - 7
GAME_D - 9
|
(Offline)
|
|
21.12.2008, 21:22
|
#4
|
AnyKey`щик
Регистрация: 30.11.2008
Сообщений: 18
Написано одно полезное сообщение
|
Ответ: GameCanvas и getKeyStates()
тоесть выходит, что джойстик и "2,4,5,6,8" - это одни и те же кнопки и раздельно их обрабатывать неполучится? Как-то это грустно(((
А вот в Canvas можно обрабатывать все кнопки отдельно, может можно использовать Canvas'скую систему реакций на нажатия совместно с GameCanvas'ской графической системой? Только что-то я себе это слабо представляю, ведь, чтобы работал Canvas'ский обработчик, надо Canvas задать как текущий экран. Тогда GameCanvas не сможет рисоваться на экран. А может... рисовать GameCanvas не на экран, а в Image, а уже этот Image рисовать в Canvas... Но это не есть гуд. И это скорее всего извращение. А как по-другому пользуясь графическими возможностями GameCanvas не ущемлять себя в работе с клавиатурой? Ведь это сколько полезных кнопок пропадает.
|
(Offline)
|
|
22.12.2008, 01:12
|
#5
|
AnyKey`щик
Регистрация: 30.11.2008
Сообщений: 18
Написано одно полезное сообщение
|
Ответ: GameCanvas и getKeyStates()
Ага!
Вроде что-то нашел. В конструкторе класса GameCanvas есть булев параметр, который по всей видимости и определяет способ слежения за клавиатурой: старый канвавский или новый, геймканвавский. Только вот нигде нормально почитать про это не получилось(((
Может кто знает как этим пользоваться, обьясните или ссылочкой для "почитать" поделитесь.
|
(Offline)
|
|
22.12.2008, 01:31
|
#6
|
AnyKey`щик
Регистрация: 30.11.2008
Сообщений: 18
Написано одно полезное сообщение
|
Ответ: GameCanvas и getKeyStates()
Виват, товарищи! Я, кажется разобрался. Интернет - это, конечно, великая вещь, и, даже, говорят там все есть. Но, блин так просто не найти там того, что нужно((( Пришлось включить мозг и немного подумать. Ведь ГеймКанвас - наследник Канваса, переопределяем метод КейПрессед и да будет счастье
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
25.12.2008, 18:23
|
#7
|
AnyKey`щик
Регистрация: 30.11.2008
Сообщений: 18
Написано одно полезное сообщение
|
Ответ: GameCanvas и getKeyStates()
Сделал простую програмку, которая выводит код нажатой клавиши на экран телефона и на втором обследуемом телефоне(Nokia N73) столкнулся с тем, что не могу получить код софт-клавиш.
Получается, что нокия просто не оповещает о нажатии этих кнопок. Зато одна из черырех дополнительных кнопок подала голос( а именно карандашик, у него код -50)
кто знает, что произошло? Точнее почему не произошла реакция на нажатие, может у нокий нет возможности программить софт-кнопки или есть какие-то особенности?
З.Ы. у меня лично никогда нокии не было, я их не перевариваю немного
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:47.
|