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

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十) 第一部分拓展小结篇

 2009-07-01 07:07:30 来源:WEB开发网   
核心提示: WillCollide()方法依据精灵的朝向判断精灵前方是否为障碍物(即判断障碍物数组Matrix[,]此时是否为0), 有了它以后,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十) 第一部分拓展小结篇(3),我们同样还需要像C#开发WPF/S

WillCollide()方法依据精灵的朝向判断精灵前方是否为障碍物(即判断障碍物数组Matrix[,]此时是否为0)。

有了它以后,我们同样还需要像C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十二)神奇的副本地图 一样建立一个名为NormalMoveTo()的方法用于精灵直线移动,此时我们只需要在第十二节代码的基础上增加精灵朝向部分即可:

        //直线移动
        private void NormalMoveTo(Point p) {
            //总的移动花费
            int totalcost = (int)Math.Sqrt(Math.Pow(p.X - Spirit.X, 2) + Math.Pow(p.Y - Spirit.Y, 2)) / GridSize * UnitMoveCost;
            ……
            //创建主角朝向属性动画
            double direction = Super.GetDirectionByTan(p.X, p.Y, Spirit.X, Spirit.Y);
            doubleAnimation = new DoubleAnimation(
              direction,
              direction,
              new Duration(TimeSpan.FromMilliseconds(totalcost))
            );
            Storyboard.SetTarget(doubleAnimation, Spirit);
            Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Direction"));
            storyboard.Children.Add(doubleAnimation);
            //动画播放
            storyboard.Begin();
        }

上一页  1 2 3 4 5 6 7 8  下一页

Tags:开发 WPF Silverlight

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