动画教程(三)

来源:互联网 发布:mac关闭spotlight搜索 编辑:程序博客网 时间:2024/04/25 21:43
环境边界
当物体离开边界,我们能做的就是忘记它,或者将它移动回来,或跟随它。


重置对象
超出边界范围的对象进行重置。实际上就是重新配置,重新设置属性。


屏幕环绕
概念很简单:一个对象超出了屏幕的左边界,就让它在屏幕右边出现;在右边出界,则将它置到左边;上面出界就回到下面。这个思想与重置对象的概念非常相似,只是位置有所不同。如果使用屏幕环绕技术,那么物体超出屏幕边界的距离不会大于一像素。 


反弹
当物体超出屏幕以后,开始应用弹性,不改变物体的位置,只改变物体的速度向量(取反)。只需乘以-1。
首先要判断物体超出屏幕的瞬间,即使物体只超出屏幕一少部分,都要将它的速度向量取反,还需将它重新
定位到边界处(重置到依靠边界处),这就形成一个非常明显的撞击反弹效果。若不调整物体位置,它将在屏幕边缘附近一直震荡下
去。
可以定义一个弹性系数-1,这时物体的反弹力量为100%。设为-0.7时,反弹力量为70%。


摩擦力
摩擦力常用值为0.9或0.8.因此,每一帧,速度都会变为上一次的80%或90%。只能改变物体的速度向量中的速度,而不能改变运动的方向。
摩擦力要从速度向量的量值或速度中减去,不能只是简单的从x,y轴上减去。根据分速度和方向求出速度和角度。然后从速度向量中减去速度,

如果摩擦力大于速度,速度就变完零。


简单算法:用摩擦力直接乘以x,y速度向量。理论上,速度无限接近于零,但永远不会等于零,计算机会取整为零。