814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|
1 | |
Timer в linux27.09.2015, 20:04. Показов 486. Ответов 12
Метки нет (Все метки)
Всем привет! Изучал java, решил написать змейку. Писал на винде, было все хорошо.
Для шага змейки использовал Timer. По его событию, совершался шаг, потом перерисовка, проверка на съедение яблока и выход за поле.. Все хорошо, но на линуксе если не нажимать клавиш, то змейка начинает перескакивать через несколько полей.. Может есть особенность в Timer'е на линуксе? Код конечно ужасный, но части могу выложить какие надо будет..
0
|
27.09.2015, 20:04 | |
Ответы с готовыми решениями:
12
Linux. boost. Timer реагирует на системное время? Запуск/остановка таймера при вводе в Edit команд Timer Start/Timer Stop Не удаётся связать два файла timer.h и timer.cpp Timer vs System.Windows.Forms.Timer |
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
|||||||||||
28.09.2015, 15:58 | 2 | ||||||||||
На счёт Timer в Линуксе не проверял, но попробуй задержкой реализовать:
0
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|
28.09.2015, 18:10 [ТС] | 3 |
Тогда нужен будет бесконечный цикл...
0
|
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
|
28.09.2015, 18:18 | 4 |
Timer сам по себе цикл с какой-то переодичностью или действием... В нём и размещай задержку
0
|
28.09.2015, 18:31 | 5 |
Без кода сложно что-то сказать. Попробуйте добавить логов и увеличить время между тиками - хотя бы точно сможете определить, действительно ли проблема в самом таймере, а не в вашем коде.
Какой таймер вы используете? javax.swing.Timer или java.util.Timer?
0
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|||||||||||
28.09.2015, 18:50 [ТС] | 6 | ||||||||||
таймер используется javax.swing.Timer
По событию таймеры происходит
Кликните здесь для просмотра всего текста
Если время ставить на ~700ms и выше, то такого не наблюдается
0
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
||||||
28.09.2015, 20:16 [ТС] | 8 | |||||
Да, весь вывод графики в классе наследуемом от JPanel
Кликните здесь для просмотра всего текста
0
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|
28.09.2015, 20:38 [ТС] | 10 |
Хорошо, завтра попробую paintComponent использовать
0
|
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
|
28.09.2015, 20:40 | 11 |
проблема таймера не в коде прорисовки... И кстати да, используй не paint, а paintComponent... и ещё перерисовку можно делать updateUI(), тоже быстро и надёжно
А на счёт таймера ,попробуй таймер из utils
0
|
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
|
|
29.09.2015, 20:58 [ТС] | 12 |
поменял на paintComponent, но разницы никакой.
Вообще что-то как-то странно все, если нажимать на какие-то клавиши или водить мышкой в окне, тогда все хорошо. Иначе около 4 шагов нормально, потом начинает перепрыгивать..
0
|
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
|
|
30.09.2015, 02:02 | 13 |
такое у меня в Pascal наблюдалось...но это было связанно с процессорной задержкой... На слабых процах шло, как надо, а на мощных пару секунд нормально, а потом летало как самолёт )))
Решил проблему с задержкой используя системное время... Я думаю, что есть другой способ задержки в Java, который устроит тебя. Экспериментируй. Я, к сожалению, ещё пока не сталкивался с такой проблемой в Java
0
|
30.09.2015, 02:02 | |
30.09.2015, 02:02 | |
Помогаю со студенческими работами здесь
13
Неоднозначная ссылка "Timer" между "System.Windows.Forms.Timer" и "System.Timers.Timer" При randomize timer: пишет invalid outside procedure и указывает на randomize Timer System.Timers.Timer vs System.Threading.Timer Ошибка Kernel driver not installed (rc=-1908) linux в VirtualBox (Linux Mint) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |