摘要: 基本思路:两个圆的距离如果小于两圆半径只和就可以判定这两个圆发生碰撞了var dx:Number = ball2.x - ball1.x; var dy:Number = ball2.y - ball1.y; var dist:Number = Math.sqrt(dx * dx + dy * dy); if (dist < ball1.radius + ball2.radius) { tr... 阅读全文
posted @ 2010-09-02 22:58 rock506 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 弹性运动的加速度与物体到目标点的距离成正比例。一维坐标上的弹性运动 这里我们仍然使用可以拖拽的小球作为主体。默认位置还是 x 轴的 0 点,使它具有运动到中心点的弹性。像使用缓动一样,需要一个变量保存弹性的数值。可以认为这个数同距离的比例,较大的弹性值会使弹性运动显得十分僵硬。较小的弹性值会使弹性运动像一条松紧带。我们选用 0.1 作为弹性 (spring) :private var spring... 阅读全文
posted @ 2010-09-02 20:54 rock506 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 简单缓动在我们使用缓动使物体归位时,运动显得很自然。简单的缓动运动实现起来也非常简单,比求出夹角,计算 vx,vy 还要简单。下面是缓动的实现策略: 1. 确定一个数字作为运动比例系数,这是个小于 1 的分数; 2. 确定目标点; 3. 计算物体与目标点的距离; 4. 用距离乘以比例系数,得出速度向量; 5. 将速度向量加到当前物体坐标上; 6. 重复 3 到 5 步。图 8-1 解释了这一过程。... 阅读全文
posted @ 2010-09-02 14:03 rock506 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 如果想在一个自定义类中注册对stage对象的监听事件,然后在另一个文档类中使用该类的实例,this.stage为null,正确做法应该如下:然后把它实例化后显示出来这种情况下,程序运行是正常的。再来看一种情况然后把它实例化后显示出来原因是removeChild(myClass)后,myClass的onLoop方法所持有的stage未null了,正确的做法如下 阅读全文
posted @ 2010-09-02 01:41 rock506 阅读(450) 评论(0) 推荐(0) 编辑