c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc

c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc

ID:18269993

大小:308.50 KB

页数:7页

时间:2018-09-16

c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc_第1页
c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc_第2页
c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc_第3页
c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc_第4页
c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc_第5页
资源描述:

《c#开发wpfsilverlight动画及游戏系列教程(game tutorial):(十五) 精灵控件横空出世!②.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、紧接着上一节,我们打开QXSpirit.xaml.cs文件。在游戏设计中,为了能够轻易控制及管理精灵的各项属性及功能等,我赋予每个精灵一个"生命钟",它在精灵的使用中起到关键作用:publicQXSpirit(){InitializeComponent();InitThread();//初始化精灵线程}DispatcherTimerTimer=newDispatcherTimer();privatevoidInitThread(){Timer.Tick+=newEventHandler(Timer_Tick);Timer.S

2、tart();}//精灵线程间隔事件intcount=0;privatevoidTimer_Tick(objectsender,EventArgse){Body.Source=newBitmapImage((newUri(ImageAddress+count+".png",UriKind.Relative)));count=count==7?0:count+1;}   DispatcherTimer类似于Thread中的Join,它并未创建一个新的线程,但是为了更形象的描述它,后面的章节中我均称呼它为“生命线程”。那为何要在

3、精灵控件中配置一个“生命线程”呢?打这样一个比方吧:我们可以把精灵比做一个人,它的生命就好比这个线程,每个人只有一条命,http://youku.wan128.cn在精子与卵子结合之后(控件的初始化中创建),生命即开始鲜活(创建后即启动)简单说就是“命悬一线”啦。汗一个…。目前该线程与前面章节中的一样,暂时只做精灵动作图片切换用(Timer_Tick()),至于其他功能,我将在后面的章节中进行讲解。   赋予了精灵生命以后,接着需要培养它的性格,让它拥有更多的能力、更多的属性。当然,大家首先迫切想要实现的就是前两节遗留下来关

4、于精灵的X,Y属性。那么先来看代码://精灵X坐标(关联属性)publicdoubleX{get{return(double)GetValue(XProperty);}set{SetValue(XProperty,value);}}publicstaticreadonlyDependencyPropertyXProperty=DependencyProperty.Register("X",//属性名typeof(double),//属性类型typeof(QXSpirit),//属性主人类型newFrameworkProper

5、tyMetadata((double)0,//初始值0FrameworkPropertyMetadataOptions.None,//不特定界面修改//不需要属性改变回调null,//newPropertyChangedCallback(QXSpiritInvalidated),//不使用强制回调null));//精灵Y坐标(关联属性)publicdoubleY{get{return(double)GetValue(YProperty);}set{SetValue(YProperty,value);}}publicstati

6、creadonlyDependencyPropertyYProperty=DependencyProperty.Register("Y",typeof(double),typeof(QXSpirit),newFrameworkPropertyMetadata((double)0,FrameworkPropertyMetadataOptions.None,null,null));   以上代码实现了QXSpirit控件的X,Y关联属性。大家不要被看似复杂的代码所吓着,其实很简单的,http://fenzu.ttplay8.cn

7、让我一一道来。首先将以上代码分成两部分:X坐标为第一部分,Y坐标为第二部分。它们的结构是一模一样的,我们可以忽略Y坐标,只要理解了X关联属性的实现,将X换成Y即可。   关于关联属性(上一节中的AttachProperty(附加属性)其实也是通过关联属性来实现的)的相关知识,网上不要太多,它不是本教程的重点所以就不多做解释了。理解它的朋友都明白,上面代码是它的标准创建形式,publicdoubleX是它的属性访问器,publicstaticreadonlyDependencyPropertyXProperty则是定义它。就如

8、上面代码注释中写到的,分别定义它的属性名、类型、所处类名等等。这样,一个完整的X关联属性就完成了。有的朋友又困惑了,为什么要那么麻烦去创建关联属性?我直接这样写不就得了:publicdoubleX{get;set;}   即传统又简单。但是,我想告诉大家的是,在WPF/Silverligh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。