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

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

 2009-06-29 07:07:44 来源:WEB开发网   
核心提示: 该方法中的黄色部分即为新增加的内容,Direction动画创建与X,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十九) 完美精灵之八面玲珑(WPF Only)③(4),Y两个关联属性动画如出一辙,大家对比分析一下就可以轻松理解,下一节我将对前面1

该方法中的黄色部分即为新增加的内容,Direction动画创建与X,Y两个关联属性动画如出一辙,大家对比分析一下就可以轻松理解,原理大致是将寻路中得到的点序列进行后一个点与前一个点之间计算正切值以确定方向,再将这些方向序列值作为关键帧加入进Storyboard逐帧动画中。

一切就绪,让我们启动程序看看成果吧:

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

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

嘿嘿,角色可以显示正确的方向了呢!但是还存在一个小问题,当主角到达目的地后仍然保持着跑步状态而非站立。这里,我通过以下方法来判断并返回是否到达了目的地:

        //判断是否移动到目的地
        private bool ArriveTarget() {
            return (storyboard != null && storyboard.GetCurrentProgress() == 1) ? true : false;
        }

最后,我将ArriveTarget()方法加入到游戏窗口界面刷新主线程中,判断当主角到达目的地时,切换主角的动作为站立状态:

       //游戏窗口刷新主线程间隔事件
        private void Timer_Tick(object sender, EventArgs e) {
            //判断主角是否移动到了目标,如果是则动作切换成停止
            if (ArriveTarget()) {
                Spirit.Action = Actions.Stop;
            }
            ……
        }

终于完成了,忽忽…用了3节才写完呢,真够累的。欣赏一下最终成果,犒劳犒劳一下自己吧:

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

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

神奇的虚拟世界还需要我们继续去锻造完善,下一节我将对前面19节的内容来个补遗及拓展,也算给本教程第一大部分(1-20节)做个小结吧,敬请关注。

上一页  1 2 3 4 

Tags:开发 WPF Silverlight

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