Вниз  Java-программирование (1-ые посты)
- 8.06.2015 / 06:45
Aladdin
  Пользователь

Aladdin 
Сейчас: Offline
Люди, подскажите пожалуйста, как сделать нормальное управление клавишами? Дело в том, когда нажимаю например вниз(8) курсор перескакивает, как сделать чтоб нормально работало.? Заранее спасибо.
- 8.06.2015 / 07:00
Kalter
  Пользователь

Kalter 
Сейчас: Offline
Цитата Aladdin:
как сделать чтоб нормально работало
Как-как? Я просто не очень понял что именно ты имеешь ввиду.
__________________
 Homo homini penis est.
- 8.06.2015 / 08:01
Aladdin
  Пользователь

Aladdin 
Сейчас: Offline
Kalter, Обработчик клавиш:

  1. public void keyPressed(int key){
  2. if (key == Canvas.UP ) up = true;
  3. }
  4. public void key Released(int key){
  5. if (key == Canvas.UP) up = false;
  6. }
...
  1. public void run(){
  2. ...
  3. if (up) up();
  4. ...
  5. }

метод up() управляет курсором, ну вот когда нажимаю на 2 или вверх, курсор передвигается бешеной скоростью, перескакивает. Я бы хотел сделать управление как TextEditor, нажимаешь на кнопку передвигается только на один, если удержать, то реагирует только через несколько секунд.)
- 8.06.2015 / 12:09
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Aladdin, насколько я понимаю, обработка нажатий происходит в другом потоке, то есть происходит что-то подобное:

pressed, run, run, run, ..., run, released.

Если это действительно так, то достаточно в первом run установить флаг up в false: нажали кнопку, обработали один раз, ждем пока не отпустят кнопку. Для большей интерактивности можно записывать время последнего смещения курсора: нажали кнопку, run обработал смещение, записал время, run вызывается но не обрабатывает смещение (прошло времени меньше секунды), прошла секунда, снова run обработал смещение, записал время, ..., кнопку отпустили.

System.currentTimeMillis() для записи времени.

Изменено Ксакеп (9.06 / 05:28) (всего 1 раз)
- 8.06.2015 / 12:27
Naik
  Пользователь

Naik 
Сейчас: Offline
Ксакеп, точнее
  1. System.currentTimeMillis()
  2. /* или */
  3. System.nanoTime()

- 8.06.2015 / 12:50
Magatino
  Администратор

Magatino 
Сейчас: Offline
Aladdin,
Открыть спойлер


Изменено Magatino (17.06 / 15:22) (всего 3 раза)
- 16.06.2015 / 02:14
Bogdan-G
  Пользователь

Bogdan-G 
Сейчас: Offline
Вопрос, в яве6/7 нет полиморфизма если не ошибаюсь из коробки, тогда как будет работать следующий фрагмент кода?
Открыть спойлер
"public static ItemStack getRecipeOutput" повторяется два раза, зачем? и еще "ItemStack..." это еще зачем три точки? редко такое вижу в коде исходников. Как его будет одупливать JVM7?

Изменено Ксакеп (16.06 / 07:39) (всего 4 раза)
- 16.06.2015 / 07:47
Ксакеп
  Модератор форума

Ксакеп 
Сейчас: Offline
Bogdan-G, что значит "в Java нет полиморфизма из коробки"? Вообще, это полная глупость, но возможно, ты имел в виду что-то определенное.

Три точки — это фича Java 7, variadic params, то есть можно вызвать функцию с переменным числом параметров. При вызове они пакуются в массив объектов.

Соответственно у тебя есть две функции: с первым параметром boolean, либо когда все объекты. Различить их не составляет труда, overriding (полиморфизм функций) работает.
- 17.06.2015 / 14:00
Kalter
  Пользователь

Kalter 
Сейчас: Offline
Java ME. "MIDP lifecycle does not support system exit". Зачем оно вообще реализовано в CLDC?
__________________
 Homo homini penis est.
- 17.06.2015 / 14:51
vl@volk
  Пользователь

vl@volk 
Сейчас: Offline
На моей нокиа работало, выводило то что я ему передавал
__________________
 знает толк
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)