Модуль time

28 октября 2015 17:00
В ходе реализации логики сцены + отрисовке канвас текстур использовал функции setTimeout, пока что их не много, но число вызовов setTimeout будет расти. setTimeout использую не единожды а больше как setInterval (определенная функция отрисовки вызывается каждые 40мс в течение 4 сек) . Большое количество таймеров может привести к серьезной нагрузке на процессор, по идеи лучше создать единый таймер который будет организовывать отрисовку. Начал думать как реализовать это дело, зашел в ваше аpi и нашел там модуль time (https://www.blend4web.com/api_doc/module-time.html) . Скажите у вас создается глобальный таймер (или найдено какое-то другое решение которое оказалось на практике ещё более эффективным) который отвечает за отрисовку или метод set_timeout аналогичен обычному setTimeout? Было бы здорово если эта задача была уже решена вами) Задача то не тривиальная, чтобы все грамотно реализовать
28 октября 2015 22:55
Таймер в модуле time аналогичен setTimeout, но отсчитывает по времени движка (оно отличается тем, что может быть поставлено на паузу).
В случае, если у вас множество объектов, использовать таймеры не целесообразно. Передвижение объектов, анимация и любые другие процессы должны производится в одной функции, привязанной к рендерингу - Render Callback (https://www.blend4web.com/api_doc/module-main.html#.set_render_callback). Другой вариант, использовать сенсоры и "манифолды" (https://www.blend4web.com/api_doc/module-controls.html), обработка которых также привязывается к процессу рендеринга.
Команда Blend4Web
https://twitter.com/AlexKowel
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.