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

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十一)主位式地图移动模式

 2009-07-04 07:07:23 来源:WEB开发网   
核心提示: 对于遍历子控件,我可拿手了,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十一)主位式地图移动模式(4),用Foreach不是更能胜任,为何还要用老土的For呢?深蓝色:这涉及到在Foreach中动态添加和删除子控件的问题,整一个轻松,那么我们依

对于遍历子控件,我可拿手了,用Foreach不是更能胜任,为何还要用老土的For呢?

深蓝色:这涉及到在Foreach中动态添加和删除子控件的问题。举个最简单的例子,游戏中有一个怪物(monster),你一个如来神掌不小心把它给挂了(monster.Life=0),那么画布就需要对其控件进行移除(Carrier.Children.Reomve(monster));好,此时问题来了,Carrier.Children这个Collection集合的内容发生了变化(少了一个monster),这将导致系统十分的不高兴:*的!谁动了我的怪!(抛出InvalidOperationException异常),这就是臭名昭著的在Foreach遍历中由于对Collection内容进行更改而引发的血案!如何屏蔽它?用Try{}Catch{}?我非常拒绝在我的代码中出现这对兄弟,还剩下谁?惟有善良且和谐的For能肩此重任。

又有朋友问了:我们先判断了子控件是否为QXSpirit类型,恩,这很好很强大;但是后面接着将地图和遮罩当作Image来判断是不是有些太牵强?

深蓝色:嘿嘿!等你多时了。伟大的地图控件华丽登场:

有了第十四节关于创建精灵控件的知识,这地图控件只需要依葫芦画瓢,整一个轻松。那么我们依照第十四节中创建QXSpirit控件的方法,在Controls文件夹上点右键添加一个用户控件,取名叫QXMap

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十一)主位式地图移动模式

并为其添加如下属性:

#region (地图表层/遮罩)属性

// 地图关键点X定位到左上角0>

public int CenterX { get{…}; set{…}; }

// 地图关键点Y定位到左上角0

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

Tags:开发 WPF Silverlight

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