C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十六)地图自定义切片与导出
2010-09-30 21:01:05 来源:WEB开发网在VS设计器中我们仅能看到它们以WinFormHost的描述形式显示,只有在运行时才能看到它们真正的实体内容:
那么接下来同样的我们通过绘制Line的方式来绘制切片边线,具体方法与绘制障碍物边线非常相似,额外再通过一些简单的事件即可实现自定义地图切片设计:
图片看不清楚?请点击这里查看原图(大图)。
上图中灰色虚线为10*10像素单位的障碍物单元格边线,棕红色虚线为250*286像素单位的切片边线,通过NumericUpDown可以非常方便的定义最大值、最小值、有效值及跨越值,并且通过它的ValueChanged事件实现轻松的所见即所得。
设定完切片边线的显示后,最后将根据此切片预览实现真正的地图片导出功能。这里我们可以使FolderBrowserDialog文件夹选择对话框,并配合如下方法来实现此功能:
int sectionXNum = (int)(mapWidth / (double)SectionWidth.Value);
int sectionYNum = (int)(mapHeight / (double)SectionHeight.Value);
for (int x = 0; x < sectionXNum; x++) {
for (int y = 0; y < sectionYNum; y++) {
CroppedBitmap croppedBitmap =
new CroppedBitmap(mapSource, new Int32Rect(x * (int)SectionWidth.Value, y * (int)SectionHeight.Value, (int)SectionWidth.Value, (int)SectionHeight.Value));
System.IO.FileStream fileStream =
new System.IO.FileStream(string.Format(@"{0}/{1}_{2}.jpg", outputSection.SelectedPath, x, y), System.IO.FileMode.Create);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(croppedBitmap));
encoder.Save(fileStream);
fileStream.Close();
}
}
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