C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十一)主位式地图移动模式
2009-07-04 07:07:23 来源:WEB开发网interface QXObject {
int CenterX { get; set; }
int CenterY { get; set; }
double X { get; set; }
double Y { get; set; }
……
}
如此一来,只要对继承此接口的类设定好如上属性,再对现有的QXSpirit与QXMap两个控件添加对此接口的继承:
public partial class QXSpirit : UserControl, QXObject { …… }
public partial class QXMap : UserControl, QXObject { …… }
最后再次对前面的方法进行如下修改:
……
for (int i = 0; i < Carrier.Children.Count; i++) {
if (Carrier.Children[i] is QXObject) {
QXObject Object = Carrier.Children[i] as QXObject;
Canvas.SetLeft(Object, Object.X - Object.CenterX);
Canvas.SetTop(Object, Object.Y - Object.CenterY);
Canvas.SetZIndex(Object, Convert.ToInt32(Object.Y));
}
}
……
忽忽,大功告成!
当我们将AllMove()的9区域代码均补充完整后,替换掉第二十节中的AllMove()方法,其他的代码一个也不用改,结果就像变魔术一样,地图的移动模式转眼由牵引式地图移动模式转变成主位式地图移动模式,地图、遮罩、就连障碍物都同样的被无缝移植了,这难道不是奇迹吗?欣赏一下自己的劳动成果吧:
瞬间的模式转换是否让大家感到措手不及,匆忙中让太多的代码与属性显得臃肿冗余且无章可循,那么下一节我将对本教程源码进行第一次大规模重构,从设计升华到艺术,这是每一位开发者无上的追求,敬请关注。
源码下载:http://flashview.ddvip.com//2009_07/78.rar
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
- ››WPF学习笔记7. Resource
- ››WPF学习笔记6. RoutedEvent
- ››WPF学习笔记5. DependencyProperty
- ››WPF学习笔记3. Navigation
- ››WPF学习笔记之2. Dispatcher
- ››WPF学习笔记之1. Application
更多精彩
赞助商链接