Перейти к содержанию
Fire Monkey от А до Я
  • 0

В моем приложении наблюдается подтормаживание отрисовки при использовании нескольких битмапов с анимацией. С чем это может быть связано?


97mik

Вопрос

На форме есть 5 Image которые которые на событие таймера (10мс.) двигаются вниз, всё ок, но после того как добавил ещё один Image (фон, 640x1300), то движение стало подтормаживать, как это можно исправить или оптимизировать?

 

Платформа: iOS.

Проект: Sample.zip

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

В вашем случае вы создаете 5 изображений 50х50. Но при этом на самом деле туда копируете 5 изображений 300х400. Для использования в качестве спрайтов при частом обновлении (10 миллисекунд) такой подход не допустим. Попробуйте уменьшить размер изображения до реально используемого.

Ссылка на комментарий
  • 0

Это я для примера сделал, в моём проекте изображения 66x120. Но без фона же всё движется отлично, а как только включается фон, то сразу появляются подтормаживания. Может будет лучше например нарисовать фон вручную на Canvas? 

Ссылка на комментарий
  • 0
  • Администраторы
  1. Неправильная выбранная частота отрисовки. Проблема вашего примера в том, что вы используете совершенно не нужную частоту обновления кадра - 100 кадров в секунду. Частота съёмки в современном телевидении составляет порядка 24-30 кадра в секунду (Википедия). При большей частоте кадра человеческий глаз не сможет физически отличить 24 кадра от например 100 кадров в секунду. Поэтому в вашем случае достаточно для таймера использовать например 30-40 милисекунд, увеличив скорость изменения картинки в 3-4 раза. После этих изменений, я не вижу подтормаживаний. Как минимум этим вы увеличите скорость в 3-4 раза.
  2. Не нужно использовать изображения больше, чем того нужно, которые потом автоматически программным путем каждый раз сжимаются в несколько раз. Это опять же сказывается на производительности вашего приложения. Например в вашем случае, вы используете картинку размером 300х400, а сами в конечном итоге используете изображения только размером 50х50.

P.S. FireMonkey не позиционируется, как игровой движок. Поэтому, если вы приняли решение все-таки сделать игру, игнорируя рекомендации, то вам придется очень детально обращать свое внимание на вопросы производительности: грамотное использование ресурсов, движение объектов, использования картинок и другие вопросы.

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...