На сьогодні найпростіший спосіб зробити це (тому, мабуть, найкращий спосіб, якщо ви насправді не прив'язуєтесь до продуктивності) - це мати дві копії своїх спрайтів.
- Регулярна версія
- "Жирна", безбарвна версія - в основному біла версія вашого спрайту X-багато пікселів "жирніше", ніж оригінал.
Намалюйте весь об’єкт, використовуючи версію "жиру", а потім намалюйте звичайну версію зверху.
Зробивши «жирну» версію білою, ви можете використовувати вбудовану кольорову тону SpriteBatch, щоб змінити колір вибору динамічно.
Для створення "жирного" версону я рекомендую написати розширення контентного конвеєра, яке може автоматично приймати оригінальні спрайти, читати їх альфа-канал, створювати новий альфа-канал, відбираючи максимальний альфа-канал у вихідному зображенні X-багато пікселів навколо кожного пікселя, і встановлення RGB = (1,1,1).
Вам потрібно буде переконатися, що у всіх у спрайтів є достатня прозора рамка, щоб додати контур (ви можете перевірити це в процесорі вмісту - і навіть звільнити місце, якщо потрібно).
Якщо у вас є лише кілька спрайтів, ви можете просто скористатися хорошим редактором зображень (GIMP, Photoshop) і зробити це вручну: Альфа-канал до вибору, розширення вибору, виділення до альфа, заповнення кольорових каналів білим.