C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十四)地图编辑器诞生啦!
2010-09-30 21:02:10 来源:WEB开发网到目前为止,教程示例游戏中虽然实现了A*,但是还无法轻松的为地图设置障碍物;并且游戏所有地图均为一张整的大图片,主角的移动会导致窗体对地图的不停切割,越大的地图带来的负面性能损耗越明显。对地图进行切片处理则可达到性能的最大优化:载入的时候按需加载,地图根据主角的位置仅显示特定部份;并且如果还能配上任意勾勒的遮挡物,那么这一切的一切将更能完美的诠释我们的游戏。开发制作地图编辑器已迫在眉睫。
那么本节我将为大家讲解如何制作一款基于Grid的即易用又强大的地图编辑器,并首先实现障碍物设定功能及A*寻路模拟。
第一步:设计布局
通用型的编辑器必须能够适应所有尺寸的地图,因此我选择ScrollViewer作为地图的承载容器,并通过设置它的HorizontalScrollBarVisibility与VerticalScrollBarVisibility均为auto使之能自适应地图尺寸,即当地图超出窗体尺寸的情况下出现滚动条。由于一个ScrollViewer只能承载一个Content,因此为了可以在其上面能够进行障碍物的绘制及擦除操作,我们还必须添加另外一个背景透明的ScrollViewer用于承载障碍物网格(Grid):
如描述上说的,这两个ScrollViewer必须保持协动一致,即两者的尺寸、滚动条时刻所处的位置等均表现一致:
//滚动窗体二级协动
private void ObstructionViewer_ScrollChanged(object sender, ScrollChangedEventArgs e) {
ScrollViewer scrollViewer = sender as ScrollViewer;
MapViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset);
MapViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset);
}
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
更多精彩
赞助商链接