drawCircle против drawBitmap - PullRequest
       18

drawCircle против drawBitmap

3 голосов
/ 18 августа 2011

Я планирую внедрить в игру новый набор фигур: простые круги. Количество нарисованных спрайтов (в данном случае кругов) начинается с 2-3 и может увеличиваться бесконечно (потенциально). Максимум, вероятно, будет около 60, хотя. Всего должно быть 5 типов кругов, каждый с разным цветом и, вероятно, размером. Теперь, видя, что я не буду реализовывать это до понедельника, я решил спросить об этом в stackoverflow.

Кто-нибудь уже знает, какой метод быстрее?

1 Ответ

7 голосов
/ 18 августа 2011

Битовые карты почти всегда быстрее любого вида рисования. При правильной подготовке чертежа растровое изображение просто выводит память на экран. Рисование круга включает в себя значительное количество вычислений, включая сглаживание. Я представил документ, который освещал это на JavaOne 2009, но старые документы, похоже, были удалены с сайта.

Это зависит от того, насколько большим должно быть ваше растровое изображение, но для размеров менее 10 пикселей растровые спрайты намного быстрее, чем даже простые графические операции, такие как рисование крестов и линий. Вам также нужно убедиться, что ваш спрайт не потребует какого-либо преобразования при рисовании и что эта форма совместима с памятью экрана.

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

Вы также должны помнить первое правило оптимизации: не делайте этого, если нет необходимости.

...