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 Администратор Сейчас: Online
Имя: 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 Администратор Сейчас: Online
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| |
7.10.2015 / 19:29 | |
Banschey Пользователь Сейчас: Offline
Имя: Banschey Откуда: Донецк, Украина Регистрация: 22.03.2015
| nikita488m, Если есть такой объект как камера то лучше двигать её, так как двигать всё карту да ещё и + с динамическими объектами не очень производительно. Хотя не буду утверждать, я не особо знаю про java библиотеки итд.
|