Я работаю над холстом, в котором есть несколько генераторов частиц. Частицы постепенно уменьшаются после создания. Для масштабирования частиц по сравнению с их центральными точками, я использую метод context.translate():HTML5 Canvas - масштабирование относительно центра объекта без перевода контекста
context.save();
context.translate(particle.x, particle.y);
context.translate(-particle.width/2, -particle.height/2);
context.drawImage(particle.image, 0, 0, particle.width, particle.height);
context.restore();
Я прочитал несколько источников, которые утверждают, сохранения(), перевод() и восстановление() методы довольно вычислительно дорогой. Есть ли альтернативный метод, который я могу использовать?
Моя игра предназначена для мобильных браузеров, поэтому я стараюсь как можно больше оптимизировать работу.
Заранее благодарен!
Спасибо - это небольшое изменение увеличило производительность мобильных устройств на 10-20 кадров в секунду. Очень признателен! –
Upvote для значительного улучшения кода вопросов с хорошим ответом. Я мог бы добавить, что если нужны только переводы, вы можете полностью исключить context.translate и просто изменить координаты x, y. – markE
Я изначально избегал этого, так как не знаю полного сценария, но включил его сейчас, поэтому опция более понятная (мне лично хотелось бы - я использую это в своем собственном движке частиц). Спасибо markE. Также добавлено более подробное описание. – K3N