PDA

Просмотр полной версии : Лаги тача


undefined
27.11.2016, 18:26
Волею судеб осваиваю разработку под андройд на яве.Заметил неприятную особенность: тач работает как-то с запаздыванием.
Проявляется это так: кладу палец и начинаю его двигать.При этом, move ивенты не идут пока не сдвинешь палец пикселей на 30-40, а потом драг-объект срывается и резко догоняет палец.
И еще если двигать достаточно быстро, то драг-объект начинает заметно отставать от пальца и снова если остановиться/замедлиться все нормализуется.Экран обновляется с фпс 60, поэтому тут лаги явно не из-за приложения.
Собсвенно интересует это специфика явы/моего девайса или это считается нормой?Или может есть какие-то воркэраунды?

Zebestov
27.11.2016, 22:41
Я про эту лажу даже видео запилил =) https://www.youtube.com/watch?v=cwFyC6iPqIM
Лечится ручной реализацией drag-n-drop, при которой координаты начала таскания запоминаются не при TOUCH_BEGIN, а при первом же TOUCH_MOVE после этого TOUCH_BEGIN.

Отставания не лечатся, это мобилы, детка камрад! =)

undefined
27.11.2016, 22:46
да, именно оно.
но проблема, судя по всему в том, что первый тач-мув и приходит с запазданием.

Добавлено через 4 минуты
интересно а у яблочной конторы такие же приколы?

Zebestov
27.11.2016, 23:15
1. Совершенно верно, с запаздыванием. Метод лишь позволяет избавиться от рывка — драг начнется плавно, как и положено, но позже =)

2. У яблок та же балалайка.

undefined
28.11.2016, 00:49
Zebestov,благодарю!

D12
28.11.2016, 04:21
У меня на старенькой Nokia есть игра "Cannon rats", игра сделана на java и харатеризуется как очень качественный клон "Angry birds", повторюсь настолько качественный что у ориганала багов побольше чем у его клона. Так вот в игре Cannon rats описанных выше багов нет, даже намека нет на такое. К чему я это ? просто вы расслабились поверив в баг, но игра доказательство что вы просто не все ответы знаете.

undefined
28.11.2016, 11:22
а в аппсторе эту игру можно увидеть?По названию выдает с пару дюжин приложений и ни одного с точно таким названием. И вообще ничего похожего на angry birds там(в результатах поиска) нет (https://play.google.com/store/search?q=Cannon%20rats&c=apps&hl=en).
upd:Вернее есть (https://play.google.com/store/apps/details?id=com.logicking.cannonsandsoldiers), но оно, судя по всему, страдает той же болезнью.

Zebestov
28.11.2016, 12:14
D12, не верю. Этот "баг" с рывком на старте медленного движения совершенно логичен и происходит из самой сути пальцевого сенсора.

D12
29.11.2016, 00:40
Увы но сенсор моего Нокия приказал долго жить когда я был недалеко от города Петропавловск-Камчатский, морозы дальнего Востока смогли добить телефон не взирая на его защиту.

Игру посмотреть можно на YouTube достаточно просто ввести в поиске, могу прислать сам файл игры, у меня есть архив телефона с всем что в нем есть.

И повторюсь игра Java, конечно ее не будет в App Store, подобное запустить на андройде надо что то вроде Java Box

To Zebestov под тач Java игр бесчисленное множество, среди них очень много достойных, вот припоминаю игру "жажда скорости" припоминаю что тач работал так как вы говорите.

Но вот помню интересные игры были (Java для тач) по фильму Хищники, по игре last planet там все срабатывало мгновенно.

http://k08.kn3.net/E92F80AEE.jpg

undefined
29.11.2016, 01:02
d12, так телефон на андройде был то?Мне казалось сенсоры появились вместе с андройдом/иосом

Добавлено через 1 минуту
Речь шла о том, как от этого можно избавиться на андройде

D12
29.11.2016, 03:00
ОО телефоны сенсоры были до возникновения Андройд систем (первым полноценным смартом был LG потом яблоко потом Нокиа). Но ваше приложение вы ведь на Java делаете, лишь пакуете под Андройд.

undefined
29.11.2016, 12:22
к сожалению, api для работы с тачем не входит в стандарт java и у каждой платформы оно со своей спецификой. Очевидно, эта задержка призвана минимизировать число ложных срабатываний.Возможно, на ранних сенсорах проблему решали как-то иначе.

caseyryan
29.11.2016, 13:45
ОО телефоны сенсоры были до возникновения Андройд систем (первым полноценным смартом был LG потом яблоко потом Нокиа). Но ваше приложение вы ведь на Java делаете, лишь пакуете под Андройд.
Первой была Nokia 7700

lexa2000lexa
29.11.2016, 14:14
Первой была Nokia 7700
Первым все же был Ericsson R380, Nokia 7700 появилась через 3 года.

caseyryan
30.11.2016, 11:51
Первым все же был Ericsson R380, Nokia 7700 появилась через 3 года.
Прикольно) не знал про такой.