Вниз  Java-программирование (1-ые посты)
- 5.10.2015 / 17:57
nikita488m
  Пользователь

nikita488m 
Сейчас: Offline
Banschey, привязку ко времени? это что значит?
- 5.10.2015 / 18:06
Naik
  Пользователь

Naik 
Сейчас: Offline
nikita488m,
x = speedX * deltaTime
y = speedY * deltaTime

speedX, speedY - скорость в пикселях за мс. Можно еще и от плотности экрана отвязаться, что б ваще идеально все было :gg:

Изменено Naik (5.10 / 18:09) (всего 2 раза)
- 5.10.2015 / 19:38
Banschey
  Пользователь

Banschey 
Сейчас: Offline
nikita488m, это значит что смешение твоего персонажа происходит за каждый так цикла в котором ты его двигаешь и обновляешь. К примеру за одну секунду у тебя происходит 200 итераций цикла, ты держишь кнопку(допустим в лево), в коде начинаются изменения а именно в позиции твоего игрока. К твоей координате x добавляются или вычитаются значения. Сколько было циклов за то время которое ты двигал игрока, столько и будет изменятся твоя переменная x. При разной нагрузке на цикл и на процессор меняется и количество самих циклов во времени, поэтому твой игрок будет двигатся каждый раз по разному, вот поэтому меряют время последней итерации цикла и домножают скорость на это время. Чем больше время было на прошедшей итерации тем больше и будет скорость, чем меньше тем меньше. Таким образом мы говорим что скорость нашего героя или объекта константна.
Naik, не плохая идея надо попробовать :hack:
- 6.10.2015 / 18:09
nikita488m
  Пользователь

nikita488m 
Сейчас: Offline
Цитата Naik:
nikita488m, x = speedX * deltaTime y = speedY * deltaTime speedX, speedY - скорость в пикселях за мс. Можно еще и от плотности экрана отвязаться, что б ваще идеально все было :gg:
deltaTime как найти? Она же вроде по формуле deltaTime = текущее время - прошедшее время?
Если да, то как найти текущее и прошедшее время :-D Где-то видел что текущее время находится через System.currentTimeMillis()
- 6.10.2015 / 18:12
Magatino
  Администратор

Magatino 
Сейчас: Online
nikita488m, Тут посмотри :)
- 6.10.2015 / 21:00
Naik
  Пользователь

Naik 
Сейчас: Offline
nikita488m, правильно, а предыдущее время запоминаешь в коде, т.е. банально милисекундомер
- 6.10.2015 / 22:15
nikita488m
  Пользователь

nikita488m 
Сейчас: Offline
Ещё вопрос: как сделать прокрутку уровня (чтобы когда идёшь камера двигалась за игроком)? Насколько я знаю нужно двигать сам уровень (В моём случае TiledLayer), но насколько я знаю его двигать нельзя. Значит нужно записать его в LayerManager и от него уже плясать? :-D
- 6.10.2015 / 23:33
Dimon638
  Пользователь

Dimon638 
Сейчас: Offline
nikita488m, Шо? TiledLayer можно двигать
- 7.10.2015 / 00:27
Magatino
  Администратор

Magatino 
Сейчас: Online
nikita488m, Пост #419050
- 7.10.2015 / 19:29
Banschey
  Пользователь

Banschey 
Сейчас: Offline
nikita488m, Если есть такой объект как камера то лучше двигать её, так как двигать всё карту да ещё и + с динамическими объектами не очень производительно. Хотя не буду утверждать, я не особо знаю про java библиотеки итд.
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)