De loin, le moyen le plus simple de le faire (donc probablement le meilleur moyen, sauf si vous êtes vraiment à court de performances) est d'avoir deux copies de vos sprites.
- La version régulière
- Une version "grasse" et non colorée - essentiellement une version blanche de vos pixels sprite X-many "plus gros" que l'original.
Dessinez tout votre objet en utilisant la version "grasse", puis dessinez la version régulière par-dessus.
En rendant la version "grasse" blanche, vous pouvez utiliser la teinte de couleur intégrée de SpriteBatch pour changer dynamiquement la couleur de sélection.
Pour générer votre version "fat", je recommande d'écrire une extension de pipeline de contenu qui peut automatiquement prendre vos sprites d'origine, lire leur canal alpha, créer un nouveau canal alpha en échantillonnant le canal alpha maximum dans l'image d'origine X-plusieurs pixels autour de chaque pixel, et régler RVB = (1,1,1).
Vous devrez vous assurer que vos sprites ont tous une bordure transparente suffisante pour ajouter le contour (vous pouvez le vérifier dans le processeur de contenu - et même faire de la place si nécessaire).
Si vous ne disposez que de quelques sprites, vous pouvez simplement utiliser un bon éditeur d'images (GIMP, Photoshop) et le faire à la main: canal alpha à sélection, développer la sélection, sélection à alpha, remplir les canaux de couleur en blanc.