Я создаю флеш-игру, которая использует временные интервалы с setInterval
и иногда делает тяжелые вычисления. Проблема в том, что на более медленных машинах эти вычисления не могут идти в ногу с частотой кадров, и фильм замедляется, но таймеры не влияют на то, что делает их асинхронными с фильмом. Оглядываясь назад, было неплохо использовать таймеры, но я не могу изменить его сейчас. Итак ...
Есть ли способ пропустить рамки для рисования? Было бы хорошо, если бы игра имела более низкую частоту кадров в некоторых областях, но не отставала от таймеров. Или у вас есть другие идеи, как решить мою проблему? Я использую AS2 btw.Есть ли способ пропустить рамки чертежа?
0
A
ответ
0
Решение состоит в том, чтобы либо применения мер на основе времени, или мер кадров на основе, а не смешивать и соответствуют два.
Предпочтительным решением было бы использовать getTime()
во всех ваших событиях кадра, чтобы определить, сколько времени прошло с момента предыдущего кадра, и, следовательно, сколько вам нужно сделать в этом случае.
0
Как насчет разделения ваших обновлений на две области: обновления() где бы вы только обновить значения, которые вы будете использовать в дальнейшем для рендеринга и дро()/рендеринга(), где вы бы все ваши графики кода связанно?
У вас есть переменная пропускания рамки, которую вы должны использовать в onEnterFrame для рендеринга, когда вам нужно.
например.
onEnterFrame = function(){
update();
if(_currentframe % frameSkip == 0) draw();
}
НТН
Смежные вопросы
- 1. iPhone, есть ли какая-либо библиотека рамки эскиза чертежа?
- 2. Есть ли способ «обновить» рамки CSS?
- 3. Тестирование iOS: есть ли способ пропустить тесты?
- 4. pyCharm Отладка: пропустить код рамки
- 5. Coreplot Легенда чертежа за пределами рамки кадра
- 6. Есть ли способ создать быстрые рамки вроде этого?
- 7. Есть ли способ взломать статические рамки для Swift Project?
- 8. Есть ли способ привязать сущность рамки в silverlight?
- 9. Есть ли простой способ удалить композитор из приложения или рамки
- 10. Есть ли способ пропустить неиспользуемые библиотеки при связывании?
- 11. PHP: Есть ли способ пропустить аннотации PHP в другом файле?
- 12. Есть ли предопределенный способ пропустить вычисления, которые приводят к Nothing?
- 13. Есть ли способ пропустить первый узел при использовании итератора?
- 14. Есть ли способ пропустить некоторые документы в методе GeoNear() MongoDB?
- 15. PHP 7 CLI: есть ли способ пропустить неопределенные функции?
- 16. Есть ли способ пропустить регистрацию шестнадцатеричной формы из System.Net?
- 17. SED - "Filename too long" - есть ли способ пропустить эту ошибку?
- 18. Есть ли способ пропустить анимацию вращения из shouldAutorotateToInterfaceOrientation?
- 19. Есть ли способ пропустить следующую операцию с помощью JS?
- 20. Android - Есть ли способ пропустить «блокировку экрана» для HTC One?
- 21. Есть ли способ пропустить «ожидание зависимостей» для тестирования плана Camel?
- 22. Есть ли способ пропустить сериализацию в Rails 3.1?
- 23. Acts_as_Version Есть ли способ пропустить управление версиями из-за сохранения?
- 24. Есть ли способ заставить GDB пропустить/проигнорировать инструкцию?
- 25. Есть ли способ пропустить прекомпиляцию, когда я нажимаю на герою?
- 26. Есть ли способ пропустить доменную зону приложения при изменении App_Code?
- 27. Есть ли способ пропустить канал WCF без сеанса?
- 28. Есть ли простой способ сделать gcc пропустить crtbegin.o/crtend.o?
- 29. Есть ли способ пропустить прошивку кеша в ядре Linux?
- 30. Есть ли более pythonic способ пропустить строки в xlsx?
Но это не помешает вспышка рисовать кадры в любом случае. Я думал о добавлении времени, в течение которого два последовательных кадра нуждались больше в этом интервале, но, к сожалению, нет функции 'updateInterval'. –
@Alex: Речь идет не о изменении частоты кадров. Речь идет о * решении вашей реальной проблемы *. –
О, хорошо, я могу попробовать. –