![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.03.2012
Сообщений: 4
|
![]()
Доброго времени!
Недавно начал разработку графического движка на клиента браузерной игры. Проблема в следующем. Есть несколько анимированных спрайтов. У каждого спрайта может быть своя скорость обновления анимации, то есть, например, один спрайт в десять кадров меняет кадр каждые 100 едениц времени, а другой - каждый 140. Нужно сделать так, чтобы не каждый спрайт сам по себе обновлял себя, а глобальная сцена через какой-то промежуток времени производила обновление анимации. Если скорость спрайта совпадает со скоротью обновления глобально сцены - всё в порядке, но если она быстрее, либо в 1,5 раза медленее - тут возникает проблема. Быть может, я не с того боку смотрю на анимацию? Буду очень благодарен за ссылки, полезные советы и тому подобного. Если чего не до конца или непонятно описал - опишу понятнее и до конца. Реализация не важна, никак не могу саму суть уловить - как сделать переодическое обновление всей анимации (например раз в секунду), но с разной скоростью спрайтов. Заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]()
Нормальных способов нет.
Как я понимаю, Вы используете замыкания для создания для каждого элемента своей анимации. Если нет, то следует это сделать. Тут проблема в том, что у каждого браузера свой внутренний таймер и не везде он точен (Хром изрядно Вам нервы этим попортит). И анимация не может стартовать одновременно. Из-за этого расхождения будут всегда. Я лично, периодически удаляю старую анимацию и "синхронно" запускаю всю сцену по новой. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 09.03.2012
Сообщений: 4
|
![]()
Спасибо за ответ, но проблема несколько в другом. Всё-таки я не очень ясно выразился, наверное.
У меня есть глобальный таймер, типа Код:
Код:
Например, если глобально обновление каждые 78мс, а скорость обновления спрайта каждые 80мс, получается такая вот картина 1) 78мс - Спрайт высчитал, что обновление ещё не наступило (он должен каждые 80мс обновляться) 2) 156мс - Спрайт обновился 3) 234мс - Спрайт опять не обновился Будут задержки, хотя реально скорость спрайта особо не отличается от скорости глобального обновления. Вот я и думаю, как так всё организовать? Может я неправильный метод выбрал? Но чтобы у каждого спрайта был свой таймер - это тоже не очень хорошо. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]()
Три такой организации быстро запутаетесь. Лучше сделайте каждую анимацию независимой от других.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глобальное потепление - насколько опасно? | hardorsoft | Свободное общение | 17 | 29.06.2011 13:47 |
Глобальное изменение GTA. | VintProg | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 14 | 22.07.2009 07:28 |
Глобальное позиционирование освещения в OpenGL | MoDErahN | Мультимедиа в Delphi | 5 | 02.06.2009 20:59 |
Глобальное использование переменных | DISAITE | Помощь студентам | 1 | 16.03.2009 16:21 |
А если всем объедениться и создать что-нибудь глобальное? | Viteef | Свободное общение | 37 | 21.05.2007 16:10 |