Bei weitem der einfachste Weg, dies zu tun (der wahrscheinlich beste Weg, es sei denn, Sie sind wirklich auf Leistung bedacht), besteht darin, zwei Kopien Ihrer Sprites zu haben.
- Die reguläre Version
- Eine "fette", ungefärbte Version - im Grunde genommen eine weiße Version Ihres Sprites. X-viele Pixel "dicker" als das Original.
Zeichne dein gesamtes Objekt mit der "fetten" Version, dann zeichne die reguläre Version darüber.
Indem Sie die "fette" Version weiß machen, können Sie die in SpriteBatch integrierte Farbtönung verwenden, um die Auswahlfarbe dynamisch zu ändern.
Um Ihre "fette" Version zu erstellen, empfehle ich, eine Inhalts-Pipeline-Erweiterung zu schreiben , die automatisch Ihre ursprünglichen Sprites aufnimmt , deren Alphakanal liest und einen neuen Alphakanal erstellt, indem der maximale Alphakanal im Originalbild x-viele Pixel um jeden Pixel abgetastet wird. und Einstellen von RGB = (1,1,1).
Sie müssen sicherstellen, dass alle Sprites einen ausreichenden transparenten Rand haben, um die Kontur hinzuzufügen (Sie können dies im Inhaltsprozessor überprüfen - und bei Bedarf sogar Platz schaffen).
Wenn Sie nur ein paar Sprites haben, können Sie einfach einen guten Bildeditor (GIMP, Photoshop) verwenden und dies von Hand tun: Alphakanal zur Auswahl, Auswahl erweitern, Auswahl zur Alpha, Farbkanäle weiß füllen.