搜索内容

弹一弹

生成海报
admin
admin 2020-11-19 14:57
阅读需:0

当角色碰到舞台边缘让它反弹的时候,我们一般都会用“碰到边缘就反弹”这块代码来实现,但是如果角色在舞台内没有碰到边缘的时候也想让它反弹该怎么办呢?本节课我们一起来探索。
整个小程序只需要一个角色,就是球

首先我们在探究球碰到左右方向的物体是让它反弹该怎么实现。
假如球X坐标小于-60的时候,我们就让他反弹回来,该怎么实现呢?我们借用碰到边缘就反弹的原理,碰到左右边缘的反弹其实和碰着竖着的一条线反弹的原理是一样的,只需要找到反弹后的角度就可以了,我们做三次实验并记录一下如下表:

经过试验我们会发现,这种反弹反弹前的角度和反弹后的角度是互为相反数的,即相加等于0,那我们知道了反弹前的角度“角度”,反弹后的方向即为0-方向。具体代码如下:

同样的原理,如果球的Y坐标小于-60的时候,我们也让他反弹,我们借用碰到边缘就反弹的原理,碰到上下边缘的反弹其实和碰着横着的一条线反弹的原理是一样的,只需要找到反弹后的角度就可以了,我们做三次实验并记录一下如下表:

试验后我们会发现,反弹后的角度加上反弹前的角度等于180或者-180,那么反弹后的角度就等于180-方向或者-180-方向,怎么样能够将反弹的角度统一起来来,我们可以打开角色区的角度,会发现180度和-180度在同一个位置上,所以在角度上,-180和180其实是一样的,所以碰到上下物体的时候反弹的方向就可以统一为180-方向或者-180-方向任意一个。

反弹的具体代码如下:

这样我们就实现碰到非舞台边缘的时候的反弹效果了。

评论
  • 消灭零回复