C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十二) 雷、混、冰、毒、火、风 - 幻化中的魔法魅力
2010-09-30 20:58:24 来源:WEB开发网3)定义魔法附加属性视觉表现:
麻痹 – 雪白
混乱 – 黄色
冰冻 – 天蓝
中毒 – 绿色
燃烧 – 红色
虚弱 – 灰色
第二步,具体实现:
首先我们需要考虑的是如何实现精灵的变色,即如何改变精灵图片源的色相。在很多编程语言中都有现成的类库可以调用,但是在目前的 WPF/Silverlight中,至今我未能找到一种直接改变图片色相的方法。但这并不意味着WPF/Silverlight就此束手无策了,WPF /Silverlight的强大图形表现能力让我想到了控件蒙版,既然直接的不行,那么我们就来间接的。
接下来我们为精灵控件QXSpirit的表现层xaml中添加如下一个矩形蒙版:
<Rectangle Name="BodyMask" Opacity="0.3" Visibility="Collapsed" Panel.ZIndex="1">
<Rectangle.OpacityMask>
<ImageBrush x:Name="BodyMaskSource"></ImageBrush>
</Rectangle.OpacityMask>
</Rectangle>
此精灵身体蒙版默认情况下是不可见的,它的透明度为0.3,并且ZIndex必须覆盖于精灵之上。只要我们在后台cs中将此蒙版宽高与精灵图片源宽高时刻保持联动一致,这样,当需要的时候通过设置BodyMaskSource.ImageSource = Body.Source;然后根据前文中相应的视觉表现赋予蒙版Fill颜色,并将之显示出来。即可以轻松的模仿实现精灵图片源的色相改变。
实现色相改变原来如此的简单,只是在性能上来说等于增加了多余的消耗,但这并不是长期的,仅仅当精灵被施与附加属性后才会短时间变色,在恢复正常后即将蒙版隐藏,Collapsed将不再占用界面资源。
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
更多精彩
赞助商链接