Вниз  Java-программирование (1-ые посты)
- 7.01.2015 / 21:04
RblSb
  Пользователь

RblSb 
Сейчас: Offline
Из-за низкого фпс происходит плохое реагирование на сенсор, как вынести его в отдельный поток? И еще, чтобы во втором потоке можно было рисовать :gg: (Canvas, я так понимаю, при рисовании в отдельном потоке графика может вылетать в любом слое, но на это пофиг, нужно для отладки)

Изменено RblSb (7.01 / 21:08) (всего 1 раз)
- 8.01.2015 / 00:27
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
RblSb, не обработку сенсора надо в отдельный поток выносить, а то, что так фпс сжирает.
__________________
 let live
- 8.01.2015 / 01:20
RblSb
  Пользователь

RblSb 
Сейчас: Offline
aNNiMON, Мне нужно чтобы в самой игре оставалось 15 фпс, на этом держится вся анимация в игре (исходники декомпилированные, AE2 собственно)
- 8.01.2015 / 01:27
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
RblSb, А как у тебя анимация к фпс привязана? Если я правильно понял, тебе задержка кадров нужна. На мобилабе в примерах для дроида есть создание аним. спрайта и там есть такая тема с задержкой кадра независимо от фпс...

Изменено eNvisible (8.01 / 01:28) (всего 1 раз)
- 8.01.2015 / 01:28
Magatino
  Администратор

Magatino 
Сейчас: Offline
Цитата RblSb:
aNNiMON, Мне нужно чтобы в самой игре оставалось 15 фпс, на этом держится вся анимация в игре (исходники декомпилированные, AE2 собственно)
Ну выграешь один кадр от сенсора (это максимум, если повезёт), и что тебе это даст? :dum:
- 8.01.2015 / 01:33
Magatino
  Администратор

Magatino 
Сейчас: Offline
Цитата eNvisible:
RblSb, На мобилабе в примерах для дроида есть создание аним. спрайта и там есть такая тема с задержкой кадра
А если анимация будет быстрее fps или медленее, что делают? :dum:
- 8.01.2015 / 01:37
eNvisible
  Пользователь

eNvisible 
Сейчас: Offline
Magatino, Я имею ввиду что смена кадра не привязана к фпс, а ко времени. А так конечно, если фпс будет 2 кадра, то и стессено никакой анимации не будет. А так если тормозить поток с управлением...
- 8.01.2015 / 03:15
RblSb
  Пользователь

RblSb 
Сейчас: Offline
Magatino, 15 - это возможный максимум, а не минимум. Если делать больше - анимация будет рябить. А переписывать анимацию - не вариант.
- 8.01.2015 / 07:23
St@SyaN
  Пользователь

St@SyaN 
Сейчас: Offline
http://annimon.com/forum/?act=post&id=392347
Есть люди, которые много работали со звуками на телефонах? Как там происходит временное их хранение?
Просто есть необходимость воспроизводить их с минимальной задержкой, а загрузка звуков дело не быстрое.

Сдается мне, что там никто не ответит, а сабж вопроса не привязан к конкретному ЯП.
- 8.01.2015 / 10:42
Naik
  Пользователь

Naik 
Сейчас: Offline
Цитата Magatino:
А если анимация будет быстрее fps или медленее, что делают? :dum:
пропускают кадры. Я делал массив картинок с анимацией, и запоминал время запуска. Затем в методе отрисовки выбирал нужный индекс кадра: прошедшее время с момента запуска анимации делится на нужную задержку между кадрами и берется остаток от деления на количество кадров.
  1. long startTime;
  2. Image[] frames;
  3. final int FRAME_DELAY = 300;
  4. final int len = frames.length;
  5.  
  6. void draw(Graphics g) {
  7.     if (startTime == 0) {
  8.         startTime = System.currentTimeMillis();
  9.     }
  10.     int n = (int)((System.currentTimeMillis() - startTime) / FRAME_DELAY) % len;
  11.     g.draw(frames[n], x, y, 20);
  12. }

Можно еще выбирать кадр в завистмости от пройденного расстояния, а не время

Изменено Naik (8.01 / 10:57) (всего 3 раза)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)