快速业务通道

AS巧用导线

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-11


其实这是个很简单的技巧,就是利用导线来记录一系列坐标点,再利用记录下的数据做些特别的事。比如勾画图形轮廓,绘制游戏地图等。下面就是我做的两个实例,本来没打算拿来献丑的,但是也许有人能用得上:
点击浏览该文件
点击浏览该文件
点击浏览该文件
点击浏览该文件
由于我是在网吧上的,安装Flash很不方便,开不了原文件,我就只有凭印象给大家讲了:上面的第一个实例中直接使用了一大堆的坐标数据(大概700多个点),这些数据就是由导线获得的。第二个实例则是在运行过程中获得坐标数据,而且对数据作了处理,只保留其中的关键点(拐弯的点),如果是要做游戏地图(路线图),只取关键点就可以了,而且使数据量大大减少。

1。如何用导线获得坐标数据呢?很简单,把一个空的MC放在导线上运动,同时用一个数组不断记录MC当前的坐标,这样就可以将导线用数据记录下来了,相信大家都会这个。

2。在实例一中,点的出现是随机的,以至直到最后我们才可以看清图形,这是怎么实现的呢?其实也很简单,在0~N个数组元素中随机抽取一个,作为新增加的点(添加一个MC)的终点坐标(起点坐标是随机的,也可以不随机),然后让这个MC自己从起点移动到终点去,我们就不再管它了,而且刚才抽到的数组元素也用不着了,把它删掉,以免再次抽到。再在剩下的数组元素中随机抽取。。。。。一直到数组抽空为止。注意:请用帧循环来实现,如果想用for循环等循环语句来一次性完成所有的点,机子会罢工的。

3。在实例一中,还有个值得注意的地方:沿着导线顺序,点的生成时间是无序的(这是随机添加造成的后果),然而最终 点的闪烁却是有序的,这又是如何实现的呢。这个其实也不难,只是需要计算一下MC被加载时应该从哪一帧开始播放(本例中MC有2帧),计算时需要知道的数据有两个:一是当前主场景已经播放的帧数,二是当前所抽取到的坐标在导线上排第几位(所以最好在原来的数组里添加一项用于记录序号,因为数组元素删除后,部分元素下标是会改变的,不能作为序号。我也记不得当初我是怎样做的了,这样做应该比较好),有了这两个数据就可以算了,具体的计算我就不说了,看了原文件就能明白。
4。最后还是说一下实例二中是怎么取关键点的吧,这个涉及到一些数学知识,我恐怕讲不太明白。其基本思路就是比较相邻3(4个也可)个点构成的两条直线间的角度差,如果角度差很小,说明中间的那个点可以忽略掉,不作记录。举个例:判断点b是否是关键点,那么我们就需要知道它的前一个点(假设为a)和后一个点(假设为c)的坐标,然后比较一下直线ab和直线bc之间的角度差,如果差值小于0.05度,那么我们就可以认为ab与bc重合,而b点位于直线ac上,b点就不是关键点,可以不作记录,反之如果角度差很大,说明b点离直线ac较远,是一个关键点。(说道这里,其实一开始就比较b点与直线ac的距离岂不是简单些,想想自己真够迟钝的),原程序中的具体实现也许和我讲的有些许出入(修改多次,都记不清了),但大方向是一致的。 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号