WEB开发网
开发学院软件开发C语言 C#开发WPF/Silverlight动画及游戏系列教程(Game C... 阅读

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十九) 完美精灵之八面玲珑(WPF Only)③

 2009-06-29 07:07:44 来源:WEB开发网   
核心提示:首先我要对C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十八) 完美精灵之八面玲珑(WPF Only)②中最后的ChangeAction()方法进行一些补充说明,该方法的作用之一是根据精灵的当前动作(Action)来设置精灵切图动画的起始帧和结束帧: 图片看不清楚?请点击这里查看

首先我要对C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十八) 完美精灵之八面玲珑(WPF Only)②中最后的ChangeAction()方法进行一些补充说明。该方法的作用之一是根据精灵的当前动作(Action)来设置精灵切图动画的起始帧和结束帧:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十九) 完美精灵之八面玲珑(WPF Only)③

  图片看不清楚?请点击这里查看原图(大图)。

如上图,我们可以很清楚的看到精灵这5个动作所分别对应的CurrentStartFrame和CurrentEndFrame。这两个参数很重要是因为在精灵的生命线程中我们可以通过如下黄色区域代码来实现动态的更新精灵角色图片以形成连续动画:

   //精灵线程间隔事件
   private void Timer_Tick(object sender, EventArgs e) {
   ……
   //动态更改精灵图片源以形成精灵连续动作
   Body.Source = Source[(int)Direction, FrameCounter];
   FrameCounter = FrameCounter == CurrentEndFrame ? CurrentStartFrame : FrameCounter + 1;
   }

举个例子:当精灵在跑步的时候FrameCounter从5开始记数,然后以1为单位阶梯推进,目标是12,当到了12后再返回5继续重复前面的过程;当精灵在施法的时候,FrameCounter从20开始记数,然后以1为单位阶梯推进,目标是25,当到了25后再返回20重复前面过程。其他的以此类推……

1 2 3 4  下一页

Tags:开发 WPF Silverlight

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接