21.04.2016 / 18:14 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Alexandr, Заводишь Hashtable. В keyPressed заносишь в него как ключ - код клавиши, как значение - время первого нажатия. В keyReleased удаляешь эту запись. Пока клавиша нажата, она будет висеть в Hashtable вместе с временем нажатия. Получить продолжительность нажатия можно так: public static float keyTime(int key) {
if (keychain.contains(key))
return (System.currentTimeMillis() - keychain.get(key)) / 1000f;
else
return 0;
}
|
22.04.2016 / 01:00 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| DominaN, А не тормозно будет хештаблом кнопки обрабатывать?
|
22.04.2016 / 10:46 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| У тебя многопоточное приложение и/или есть альтернативы?
И где в доках написано, что это "тормозит"?
__________________
わからない!! |
22.04.2016 / 10:50 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Витаминыч, это Java ME, а опрос клавиш действительно нужно ускорять, поэтому Hashtable не вариант. Лучше сэмулировать Hashtable обычным массивом.
__________________
let live |
22.04.2016 / 11:39 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Alexandr, Лучше опиши для чего тебе это нужно, может нафиг не нужно будет пробегать к такому.
|
22.04.2016 / 12:19 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Magatino, как для чего? Обычное нажатие от длительного, отличать а вобще примерно вот для чего, как это в играх нередко делают: если юзер нажал fire, происходит обычная атака, если зажал на длительное время, происходит комбо атака. --- Еще одно, подскажите как Object преобразовать в число или любой другой тип? Object a = 0.3;
float b = (float) b;
так чет не работает. |
22.04.2016 / 12:51 | |
aRiGaTo Пользователь Сейчас: Offline
Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
| Alexandr, а если не float, а Float?
__________________
don't tread on me |
22.04.2016 / 12:58 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Alexandr, а вобще примерно вот для чего, как это в играх нередко делают: если юзер нажал fire, происходит обычная атака, если зажал на длительное время, происходит комбо атака.Переключение оружия можно сделать, чтобы не париться, да и сейчас не Денди времена, так что не каждый догадается, что надо удерживать кнопку "fire". А комбо атака на одну кнопку смотрится не очень. Вот в God of War и Mortal Kombat приходится попотеть тыкая на кнопки джостика и получается динамично. Короче поступай по своему, тебе виднее Изменено Magatino (22.04 / 13:09) (всего 1 раз) |
22.04.2016 / 13:37 | |
Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Цитата aRiGaTo: Alexandr, а если не float, а Float?так работает_
|
22.04.2016 / 16:18 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| aNNiMON, там вроде hashmap то нету..
Alexandr, keyPressed/keyReleased (выше написали) и скорее всего потоки понадобятся.
__________________
わからない!! |