C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十七)战斗前夜之构建动态障碍物系统
2010-09-30 20:47:32 来源:WEB开发网核心提示:在标准的MMORPG中,每个精灵对象都占据着一块区域(脚底的一块小面积),C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十七)战斗前夜之构建动态障碍物系统,该区域同样是障碍物系统中的一部分,并且它是动态的,拓展的宽度与高度(见下图),在本节实例中我将所有精灵的HoldWidth
在标准的MMORPG中,每个精灵对象都占据着一块区域(脚底的一块小面积),该区域同样是障碍物系统中的一部分,并且它是动态的,随着精灵的移动而时时变化着。实现游戏中动态的障碍物构建使障碍物系统趋向完美是全面进军战斗系统的必要前奏,大家不想看着主角和怪物叠在一起打来打去吧?
之前的章节中障碍物数组只有一个,它只包含地图障碍物信息(地图中固定不动的障碍物),因此要实现动态的障碍物构建,我们还得再增加一个障碍物数组做为当前游戏游戏中相对于主角的动态障碍物数组,以下为这两个障碍物数组的定义:
byte[,] FixedObstruction = new byte[1024, 1024], VaryObstruction;
其中FixedObstruction即为前面章节中的Matrix,这里为了方便理解,我将之重新命了名。
那么如何定义精灵的角底的障碍物区域呢?我们还得为精灵控件添加如下两个属性:
// 获取或设置脚底示为障碍物区域扩展宽度
public int HoldWidth { get; set; }
// 获取或设置脚底示为障碍物区域扩展高度
public int HoldHeight { get; set; }
这两个属性分别代表以精灵脚底坐标(即它的X,Y)为中心,拓展的宽度与高度(见下图)。
在本节实例中我将所有精灵的HoldWidth均设置为1,HoldHeight设置为0;这样所有精灵的脚底障碍物区域即为上图中左数第二个精灵所示区域。
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
更多精彩
赞助商链接