[碰撞实现\数学实现非mc检测]
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
~。
关于调试 在编辑as类的时候,语法检查需要用到Reflector这个基类,以及其他1些类的声明,但是这些类只有在编译发布fla文件时才可见,编辑.as文件时还无法找到swc组件中的类来用。 所以在单独编辑譬如ArcReflector文件时会提示找不到Reflector文件(Reflector在swc中,这里看木到- -)。 为了能够进行语法检查,必须在类的目录下声明这些类的形式,类似于C:\Documents and Settings\xp\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\Classes中的intrinsic类的声明。 这里偶也用了intrinsic类来声明已经存在于swc中的类。它们保存在xp文件夹内。用户在使用的时候可以把xp文件夹拷贝到系统class目录中,或当前项目目录。 当系统可以找到这些intrinsic的类时,就会根据这些类的声明进行语法检查,而当发布swf时,系统会忽略掉所有intrinsic的类的声明,结果就是转而使用swc中的类咯~ 评测 优点: - -。。使用简单。。不知道别人是不是也认同自己呢-"-。。 数学运算,不会出现速度过快会穿过的bug。。恩。也因此会变慢。。 事件模型,方便耐用。- -。。 缺点: 可能会有些慢,因为用了不少运算和函数调用。一直本着''自己解决技术问题,期待cpu升级来解决效率问题''的原则作的- -。。效率和便捷总是不能两全阿。。- - 每个Reflector实例保存所有需要检测碰撞的mc的数据。只适合像玛利那种板子多,目标少的环境了。。 显示和计算的不同步:虽然计算都是准确的,但却经常显示出本应在物体外的点被拉到物体内(但实际位置还是在外面的),例子中可以看到。这是因为计算碰撞的onEnterFrame调用出现在处理点运动的onEnterFrame之前。可以通过只使用1个onEnterFrame来解决。具体见后。 [插嘴] 貌似组件总是不太受欢迎,恩- -。偶本人也不是很喜欢用别人写的组件,除非已经对那个组件的结构10分了解了。。不知道那个人的coding习惯,不知道他使用了哪些变量名所以我不能再用,万一遇到bug想调试更是让人受不了。。 所以这个组件也就不大肆宣传了。。卡卡,把代码拿出来当作1次研究咯~。。- -。。恩,所有代码是前后老长时间内写的,没咋设计过。可能乱了点。。哈哈。 函数接口 function collisionCalculate (v1, v2,ins,result):Boolean 这个是用户继承Refelctor类首先要实现的1个函数,在这个函数里要实现碰撞的运算,参数有4个: v1:{x:0,y:0}; v2:{x:0,y:0}; ins:MovieClip; result:{x0:0,y0:0,vvx:0,vvy:0}v1和v2是两个坐标参数,表示被检测物体的上1帧位置和当前帧位置。 ins是被检测mc的实例引用。 result用于保存计算的结果,(x0,y0)是碰撞发生的位置。(vvx,vvy)是碰后的速度矢量。 所有坐标都是用this内的坐标系。 最后要返回1个boolean表示是否发生了碰撞。 function update () 用于刷新数据,在构造函数中被调用1次。 Reflector代码 ?import xp.gameLib.reflect.Reflector_itf; // //on(collide) or onCollide //on(passed) or onPassed //on(hit) or onHit [Event("collide")] [Event("passed")] [Event("hit")] class xp.gameLib.reflect.Reflector extends MovieClip implements Reflector_itf{ // static var __xp__init__EventDispatcher = xp.events.SimpleEventDispatcher.initialize (Reflector.prototype); function dispatchEvent(eventObj:Object):Void{} function addEventListener(event:String, handler):Void{} function removeEv |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 浅谈飞机游戏碰撞检测代码的处理方式下一篇: 镜头推拉的效果
关于[碰撞实现\数学实现非mc检测]的所有评论