fillRect, производительность? - PullRequest
2 голосов
/ 29 ноября 2009

Я пишу свой первый flash as3 игровой движок, и есть вызов функции, который заставил меня задуматься о производительности.

Каждый кадр, в котором я заполняю свое «растровое изображение рендеринга» черным цветом, используя функцию fillRect, перед тем как рендерить другие спрайты на нем.

А потом просто для удовольствия я пропустил функцию fillRect, чтобы посмотреть, какую производительность я бы получил, и без вызова fillRect мой счетчик Alcon FPS максимизируется со скоростью 112 кадров в секунду, и когда я его вызываю, я получаю около 90 с некоторым текстом и спрайтами. .

Итак, мой вопрос, есть ли способ оптимизировать или ускорить заполнение экрана цветом?

ура!

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

Я уверен, что fillRect - самый быстрый способ сброса объекта BitmapData. Я не уверен, как работает счетчик alcon fps, но заполнение прямоугольника должно занимать менее миллисекунды, если ваше растровое изображение не слишком велико или ваша система старая.

(я предполагаю, что вы делаете какое-то растрескивание растрового изображения, поэтому вам нужно стирать растровое изображение в каждом кадре?)

0 голосов
/ 29 ноября 2009

Есть ли какая-то причина, по которой вы не можете просто поместить постоянный черный объект за свой холст (или что бы вы ни рисовали), а затем сделать this.graphics.clear() перед тем, как сделать свой рисунок спрайтом?

Вот что я бы предложил. Пусть компонент с нарисованными на нем спрайтами будет прозрачным и просто каждый раз сбрасывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...