flash 滚屏(zhai)

/*********************************/
一般来讲,都是人物在背景中运动。然后再调整背景的位置使得它满足人物在中间的要求,如果超出屏幕则修正坐标使得不会出现背景外的空白区域。

如果不这样做的话,坐标系会很混乱。

上面那位说人物不动背景动的,还分情况的。如果有其他动态物品你想怎么处理,放背景层?那景深怎么做?不放背景层?那它们跟着背景一起动的时候,你还要循环遍历它们来移动它们?

一般不是随便就可以说的。

/********************************/
用的手法比较复杂,简单说是使用Bitmap(多个)+ 最原始的 xy 移动。我还是使用了Sprite。

不是一张BitpmapData的copy。我感觉这个会比一张BitmapData要快。觉得有比这个更快方法的欢迎来PK下。flash的性能优化总是在不断测试和PK中进步的。


/*******************************/
路点数据在地图一加载进来后就全部加载了(你的地图可以只加载显示的部分),然后就直接在这个路点数据上计算寻路就可以了。不需要移动。你的地图有多大?

我自己写的是用Bitmapdata类的。。。
关键问题是不去移动路点数据。你可以试一下。看看效率如何。因为两个都移动的话,容易出现误差。而路点数据不显示出来,只作为计算使用就行了。

基本思路:
1.鼠标点击后,获取舞台坐标
2.将舞台坐标转换为世界坐标(比如,你的舞台坐标是100*100,而你的背景已经向上滚动了100像素,向右滚动了100像素,那么世界坐标应该是200,200)
3.把世界坐标转换为网格坐标
4.计算寻路,获得路径
5.把路径点转换为世界坐标,如果已经靠近边缘,则移动主角(再把世界坐标转换为舞台坐标),如果没有靠近边缘,则主角在中心,移动地图

原文地址:https://www.cnblogs.com/axyz/p/2152112.html