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

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九) 2D游戏角色在地图上的移动

 2009-06-22 08:32:43 来源:WEB开发网   
核心提示: 构建好障碍物后运行程序测试的效果如下图:图片看不清楚?请点击这里查看原图(大图), 障碍物终于绘制完毕了,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九) 2D游戏角色在地图上的移动(3),那么接下来就是动画部分了,还记得我们第六章中实现2D人物

构建好障碍物后运行程序测试的效果如下图:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(九) 2D游戏角色在地图上的移动

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

 障碍物终于绘制完毕了,那么接下来就是动画部分了。还记得我们第六章中实现2D人物移动动画吗?其中有提到人物的移动基于它的左上角坐标,这是不真实的,那么我们需要为主角定义X,Y坐标,实现真实的定位到主角的脚底,所以我们这里需要一个逻辑:

        int count = 1;
        Image Spirit = new Image(); //创建主角
        int SpiritCenterX = 4; //主角脚底离主角图片左边的距离(游戏坐标系中)
        int SpiritCenterY = 5; //主角脚底离主角顶部的距离(游戏坐标系中)
        //游戏坐标系中Spirit坐标(缩小操作)
        int _SpiritGameX;
        int SpiritGameX {
            get { return ((int)Canvas.GetLeft(Spirit) / GridSize) + SpiritCenterX; }
            set { _SpiritGameX = value; }
        }
        int _SpiritGameY;
        int SpiritGameY {
            get { return ((int)Canvas.GetTop(Spirit) / GridSize) + SpiritCenterY; }
            set { _SpiritGameY = value; }
        }
        //窗口坐标系中Spirit坐标(放大操作)
        int SpiritWindowX {
            get { return (SpiritGameX - SpiritCenterX) * GridSize; }
        }
        int SpiritWindowY {
            get { return (SpiritGameY - SpiritCenterY) * GridSize; }
        }

上一页  1 2 3 4  下一页

Tags:开发 WPF Silverlight

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