5.10.2015 / 17:57 |  | 
nikita488m    Пользователь  
   Сейчас: Offline 
 Имя: Никита Регистрация: 04.10.2015
   | Banschey, привязку ко времени? это что значит?
   | 
  5.10.2015 / 18:06 |  | 
Naik    Пользователь  
   Сейчас: Offline 
 Имя: %name% Регистрация: 14.03.2010
   | nikita488m,  x = speedX * deltaTime y = speedY * deltaTime speedX, speedY - скорость в пикселях за мс. Можно еще и от плотности экрана отвязаться, что б ваще идеально все было    Изменено Naik (5.10 / 18:09) (всего 2 раза) | 
  5.10.2015 / 19:38 |  | 
Banschey    Пользователь  
   Сейчас: Offline 
 Имя: Banschey Откуда: Донецк, Украина Регистрация: 22.03.2015
   | nikita488m, это значит что смешение твоего персонажа происходит за каждый так цикла в котором ты его двигаешь и обновляешь. К примеру за одну секунду у тебя происходит 200 итераций цикла, ты держишь кнопку(допустим в лево), в коде начинаются изменения а именно  в позиции твоего игрока. К твоей координате x добавляются или вычитаются значения. Сколько было циклов за то время которое ты двигал игрока, столько и будет изменятся твоя переменная x. При разной нагрузке на цикл и на процессор меняется и количество самих циклов во времени, поэтому твой игрок будет двигатся каждый раз по разному, вот поэтому меряют время последней итерации цикла и домножают скорость на это время. Чем больше время было на прошедшей итерации тем больше и будет скорость, чем меньше тем меньше. Таким образом мы говорим что скорость нашего героя или объекта константна.  Naik, не плохая идея надо попробовать     | 
  6.10.2015 / 18:09 |  | 
nikita488m    Пользователь  
   Сейчас: Offline 
 Имя: Никита Регистрация: 04.10.2015
   | Цитата Naik: nikita488m,  x = speedX * deltaTime y = speedY * deltaTime  speedX, speedY - скорость в пикселях за мс. Можно еще и от плотности экрана отвязаться, что б ваще идеально все было  deltaTime как найти? Она же вроде по формуле deltaTime = текущее время - прошедшее время? Если да, то как найти текущее и прошедшее время     Где-то видел что текущее время находится через System.currentTimeMillis()   | 
  6.10.2015 / 18:12 |  | 
Magatino    Администратор  
   Сейчас: Offline 
 Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
   | nikita488m,   Тут посмотри    | 
  6.10.2015 / 21:00 |  | 
Naik    Пользователь  
   Сейчас: Offline 
 Имя: %name% Регистрация: 14.03.2010
   | nikita488m,  правильно, а предыдущее время запоминаешь в коде, т.е. банально милисекундомер
   | 
  6.10.2015 / 22:15 |  | 
nikita488m    Пользователь  
   Сейчас: Offline 
 Имя: Никита Регистрация: 04.10.2015
   | Ещё вопрос: как сделать прокрутку уровня (чтобы когда идёшь камера двигалась за игроком)? Насколько я знаю нужно двигать сам уровень (В моём случае TiledLayer), но насколько я знаю его двигать нельзя. Значит нужно записать его в LayerManager и от него уже плясать?     | 
  6.10.2015 / 23:33 |  | 
Dimon638    Пользователь  
   Сейчас: Offline 
 Регистрация: 12.04.2011
   | nikita488m, Шо? TiledLayer можно двигать
   | 
  7.10.2015 / 00:27 |  | 
Magatino    Администратор  
   Сейчас: Offline 
 Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
   |  | 
  7.10.2015 / 19:29 |  | 
Banschey    Пользователь  
   Сейчас: Offline 
 Имя: Banschey Откуда: Донецк, Украина Регистрация: 22.03.2015
   | nikita488m, Если есть такой объект как камера то лучше двигать её, так как двигать всё карту да ещё и + с динамическими объектами не очень производительно. Хотя не буду утверждать, я не особо знаю про java библиотеки итд.
   |