Вниз  Java-программирование (1-ые посты)
- 21.04.2016 / 18:14
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Alexandr, Заводишь Hashtable. В keyPressed заносишь в него как ключ - код клавиши, как значение - время первого нажатия. В keyReleased удаляешь эту запись. Пока клавиша нажата, она будет висеть в Hashtable вместе с временем нажатия. Получить продолжительность нажатия можно так:
  1. public static float keyTime(int key) {
  2.     if (keychain.contains(key))
  3.         return (System.currentTimeMillis() - keychain.get(key)) / 1000f;
  4.     else
  5.         return 0;
  6. }

- 22.04.2016 / 01:00
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
DominaN, А не тормозно будет хештаблом кнопки обрабатывать?
- 22.04.2016 / 10:46
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
У тебя многопоточное приложение и/или есть альтернативы?

И где в доках написано, что это "тормозит"?
__________________
 わからない!!
- 22.04.2016 / 10:50
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Витаминыч, это Java ME, а опрос клавиш действительно нужно ускорять, поэтому Hashtable не вариант. Лучше сэмулировать Hashtable обычным массивом.
__________________
 let live
- 22.04.2016 / 11:39
Magatino
  Администратор

Magatino 
Сейчас: Offline
Alexandr, Лучше опиши для чего тебе это нужно, может нафиг не нужно будет пробегать к такому.
- 22.04.2016 / 12:19
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Magatino, как для чего? Обычное нажатие от длительного, отличать :-D
а вобще примерно вот для чего, как это в играх нередко делают:
если юзер нажал fire, происходит обычная атака, если зажал на длительное время, происходит комбо атака.
---
Еще одно, подскажите как Object преобразовать в число или любой другой тип?
  1. Object a = 0.3;
  2. float b = (float) b;
так чет не работает.
- 22.04.2016 / 12:51
aRiGaTo
  Пользователь

aRiGaTo 
Сейчас: Offline
Alexandr, а если не float, а Float?
__________________
 don't tread on me
- 22.04.2016 / 12:58
Magatino
  Администратор

Magatino 
Сейчас: Offline
Alexandr, а вобще примерно вот для чего, как это в играх нередко делают:
если юзер нажал fire, происходит обычная атака, если зажал на длительное время, происходит комбо атака.
Переключение оружия можно сделать, чтобы не париться, да и сейчас не Денди времена, так что не каждый догадается, что надо удерживать кнопку "fire".
А комбо атака на одну кнопку смотрится не очень.
Вот в God of War и Mortal Kombat приходится попотеть тыкая на кнопки джостика и получается динамично.
Короче поступай по своему, тебе виднее :)

Изменено Magatino (22.04 / 13:09) (всего 1 раз)
- 22.04.2016 / 13:37
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Цитата aRiGaTo:
Alexandr, а если не float, а Float?
так работает_
- 22.04.2016 / 16:18
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
aNNiMON, там вроде hashmap то нету..

Alexandr, keyPressed/keyReleased (выше написали) и скорее всего потоки понадобятся.
__________________
 わからない!!
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)