我正在用C#制作运动管理游戏 - WPF。 我有一个戴着帽子和衬衫的人的模板图片,代表一个玩家。
我想动态重新着色球员所穿的衬衫和帽子,这取决于他所效力的球队。 Team对象有2个Color变量,一个Primary& Secundary颜色。
现在我使用了一个编辑Bitmap对象的Flood Fill算法。之后我需要将位图转换为Imagesource。
整个事情需要相当多的代码并且相当完整,我现在怀疑我是否真的以“正确”的方式做到这一点,或者是否有更好的方法来实现我的初始目标,即着色服装匹配团队的颜色。
(我遇到的另一个问题是如果我开始使用更多渐变模板 - 例如阴影 - 而不是平面颜色,洪水填充也有点复杂)
答案 0 :(得分:1)
您应该看看是否可以使用矢量图形和WPF Path
对象,而不是使用像位图这样的光栅图像。
有关Path
数据的详细信息,请参阅MSDN:https://msdn.microsoft.com/en-us/library/ms752293(v=vs.110).aspx
这样,您只需更改XAML Binding
绑定的基础数据对象,即可使用Path
更改单个装备View
服装项目对象的颜色。使用Path
对象的另一个好处是,因为它是矢量数据,所以无论你的游戏运行的分辨率如何,图像都会在没有像素化的情况下进行缩放。