这次加入了两个多边形之间的碰撞冲量的计算,首先需要知道的是他们的碰撞点和碰撞的面,这里我没有修改以前的冲量的计算方法。但是似乎问题不是很大,问题还是有的,就是多变形没有办法来停止,这我怀疑和整体的结构有关系,看来需要重新来写了。
Flash( )
这次加入了两个多边形之间的碰撞冲量的计算,首先需要知道的是他们的碰撞点和碰撞的面,这里我没有修改以前的冲量的计算方法。但是似乎问题不是很大,问题还是有的,就是多变形没有办法来停止,这我怀疑和整体的结构有关系,看来需要重新来写了。
点击鼠标可以看到一些效果,但是需要说明的是这个例子是没有碰撞的检测的,因此如果出现了两个点碰撞的情况就会出问题,因此我在这里做了一些限制。
最近的一段时间一直都在学习物理引擎的知识,今天终于有所得了,这是一个最基本的例子。
操作方法:鼠标点击的位置和小圆的距离就是小圆的速度,他和多边形的边缘的碰撞点为红色的十字位置。实际上如果判断两个多边性的话要更复杂一些。
多边形的碰撞点可能有多个,这里只能监测到2个
操作方式:靠近其中的一个顶点,按鼠标的左键或者是按UP键
推荐给大家一个网站,一个专门讲2D的多边形碰撞的。源文件在打包的文件中。有兴趣的朋友可以下载来看看。很不错的资料。
碰撞的形式有很多种,方法也有很多种,这里我检测的是圆形和直线的碰撞。
两点可以确定一条直线,这里我们给出一些点来绘制一个不规则的线框,如图所示:
我们需要计算一下圆形的中心到直线的距离Dis,如果小于圆形的半径R,就可以知道他们已经碰撞了。
要像得到他们的距离Dis,必须知道两个点,即圆心的坐标和经过圆心的和已知直线L相垂直的直线L'的交点的坐标P。
根据直线方程y=k*x+b,我们只需要计算出k和b的值就可以确定这条经过圆心的直线L'。
因为和L垂直,我们可以计算出L'k=-(1/Lk)。根据直线L的已知两点,我们先计算出Lk=(y2-y1)/(x2-x1),x1,y1,x2,y2是已知的两点的坐标。
因此我们知道了L'k=-(x2-x1)/(y2-y1)。知道了L'k,接下来计算一下L'b,因为圆心的坐标是已知的,将其代入到y=kx+b,可以计算出L'b=y-kx;
我们最终确定了这条直线L',但是最终的目标是计算L'和L的交点,对L'和L的两个直线方程解方程组。最终我们得到了交点的坐标P。
看一下效果:(拖动圆靠近直线)
已知条件是我们已经知道了一个球的运动的速度为Vi=[20,10],两个点p1=[10,30],p2=[40,20]确定的一条直线S:如图所示:
第一部分:以ActionScript为基础,提供核心ActionScript语言的详细内容,包括OOP,类,对象,变量,方法,函数,继承,数据类型,数组,事件,意外处理和scope,命名空间,XML。第一部分紧紧围绕一些对Flash Player的安全机制的看法。
第二部分:Display 和 作用范围,探究了在屏幕和输入事件的反馈的显示内容的技术。主要的内容包括 Flash Runtime Display API,等级事件的操作,鼠标和键盘的作用,动画,矢量图,位图,文本,载入操作。
第三部分:主要包括ActionScript的应用,关键在ActionScript产品的发布。包括在结合ActionScript的现有的功能在Flash中所创作的一些内容,在FlexBuilder 2中使用FlexFramework,自定义的代码库。