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

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

 2009-07-01 07:07:30 来源:WEB开发网   
核心提示: 最后就是在游戏窗口刷新线程中对它也进行时时的更新:private void Timer_Tick(object sender, EventArgs e) { …… //遮罩层跟随移动 Canvas.SetLeft(Mask, MapLeft + 793); C

最后就是在游戏窗口刷新线程中对它也进行时时的更新:

private void Timer_Tick(object sender, EventArgs e) {
  ……
        //遮罩层跟随移动
        Canvas.SetLeft(Mask, MapLeft + 793);
        Canvas.SetTop(Mask, MapTop + 217);
        //主角跟随地图同时移动
        Canvas.SetLeft(Spirit, Spirit.X - Spirit.CenterX + MapLeft);
        Canvas.SetTop(Spirit, Spirit.Y - Spirit.CenterY + MapTop);
        Canvas.SetZIndex(Spirit, (int)Spirit.Y); //时时的更新它的层次(画家算法)
        ……
     }

这里关键的代码就是黄色部分代码,我通过Canvas.SetZIndex(Mask, 612)设置了遮挡物的层次处于ZIndex:612这个位置,弄过网页的同志对Z-Index应该不陌生,它们的意义是一样的。最后还需要精灵的ZIndex与之配合才能实现完美默契的遮罩效果,因此我们在线程中时时根据精灵的Y坐标来更改它的ZIndex:Canvas.SetZIndex(Spirit, (int)Spirit.Y),这样就算以后增加了其他的NPC、怪物之类的对象物体,只要同样的设置它们的ZIndex=Y,即可以完美的实现时时的层次关系。

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

三、完美换装

这个就简单多了,因为之前的章节中已经将相关参数与实现方法都定义好了,那么剩下的就是如何调用的问题。这里为了演示方便,我在xaml里面添加了两个下拉列表(ComboBox)分别对应衣服及武器的代号,和一个换装启动按钮(本教程目录中有源码下载,这里就不列出来了)。然后我们在此按钮的点击事件中只需要3行代码就可以轻松的实现换装:

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

Tags:开发 WPF Silverlight

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