C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十六) 牵引式地图移动模式②
2009-06-24 07:08:21 来源:WEB开发网图片看不清楚?请点击这里查看原图(大图)。
A*寻路方法改造完成后,最后就是在鼠标左键点击事件中去启动它了:
private void Carrier_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
Point p1 = e.GetPosition(Map); //点击的地方在Map中的坐标点
//Point p2 = TranslatePoint(e.GetPosition(Carrier), Map); //此方法效果和上面一样
AStarMoveTo(p1);
}
这里的e.GetPosition(Map)我们可以理解为:在Map地图图片上点击,返回Map上该点的坐标。而我们同样的可以通过一个名为TranslatePoint的方法来达到相同的目的,即我们在Carrier画布上点击,返回Carrier上该点的坐标,接下来再将该点转换成Map地图图片上的位置点,因此返回的结果都是一样的。TranslatePoint()的形式很直观,虽然在此处使用效果不太好,但是将之用于地图边缘判断、物体与物体的碰撞与重叠判断、射程计算等问题上不失为一种优雅的解决方案。
OK,一切就绪,激动人心的时刻就要到了!按下CTRL+F5,尽情的在地图上随便点击吧,并且在任何的时候你用鼠标去牵引地图移动,主角和障碍物都会平滑的显示在正确位置上,什么叫完美?This is Perfect!Right?
图片看不清楚?请点击这里查看原图(大图)。
图片看不清楚?请点击这里查看原图(大图)。
后面的章节中,我将对前几节的知识来个汇总,架设一个基于单元格GridSize=30,且斜度为60度的回合制战棋类游戏战斗场景,让大家真真切切体验到WPF/Silverlight开发游戏的高效、快速与简单。在这之前,我将首先完善前十六节中一直遗留着的一个很多很多朋友迫切想要解决的大问题:如何实现精灵的八个方向?两枚重磅炸弹即将粉墨登场,敬请关注。
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
更多精彩
赞助商链接