Перейти к содержанию
  • Регистрация
  • 0
97mik

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

Вопрос

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

 

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

Проект: Sample.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Нельзя, разрешения должны оставаться не изменными.

Поделиться сообщением


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

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

Поделиться сообщением


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

  • Последние посетители   0 пользователей онлайн

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

×
×
  • Создать...