C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十三) 锦上添花之魔法特效装饰
2010-09-30 20:58:14 来源:WEB开发网<StackPanel x:Name="ExtraPanel" Orientation="Horizontal" />
为什么选择StackPanel而不是其他的布局控件呢?一方面为了与Silverlight更好的兼容,另一方面只要设置好它的宽度,动态的子控件添加或移除队列起来均非常的完美,我们需要做的仅仅是Add和Remove操作罢了。
最后,在刷新监视对象角色头像面板方法中添加如下逻辑进行Buff图标的添加与移除判断:
……
//更新Buff附加属性图标及描述
for (int i = 0; i < obj.ExtraTime.Count(); i++) {
QXIcon icon = ObjectRoleFace.ExtraPanel.FindName(string.Format("Extra{0}", i)) as QXIcon;
if (obj.ExtraTime[i] > 0) {
XElement ExtraItem = Super.GetTreeNode(Super.SystemXElement["ExtraItems"], "Item", "Value", i.ToString());
if (icon == null) {
icon = new QXIcon() {
Width = 16,
Height = 16,
BodySource = Super.getImage(ExtraItem.Attribute("Src").Value)
};
ObjectRoleFace.ExtraPanel.RegisterName(string.Format("Extra{0}", i), icon);
ObjectRoleFace.ExtraPanel.Children.Add(icon);
}
icon.Tip = string.Format("{0}持续:{1}秒", ExtraItem.Attribute("Name").Value, obj.ExtraTime[i]);
} else {
if (icon != null) {
ObjectRoleFace.ExtraPanel.UnregisterName(string.Format("Extra{0}", i));
ObjectRoleFace.ExtraPanel.Children.Remove(icon);
icon = null;
}
}
}
……
运行效果图:
很酷吧~WPF中的ToolTip非常强大,模板化的它无论内容多少或形式如何均能自如显示。不同尺寸的QXIcon不仅仅可以用来显示Buff图标,还可以拓展到技能图标、快捷图标等等;另外,这些Buff图标在StackPanel的管理下显得相当智能,前一个图标消失后,后一个图标将自动前置,再新加入的Buff图标又会跟进追尾显示,而这些的一切乱序队列均是伟大的StackPanel在默默无闻的处理,我们无须插手任何一句多余的代码:
角色面板到此为止总算完善了。下一节我将为大家讲解如何为本教程示例游戏制作地图编辑器,初步打算首先实现障碍物设置与地图切片功能,现做现卖,时间会久一点,要关注哦。
出处:http://alamiye010.cnblogs.com/
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
更多精彩
赞助商链接