用户:霖雨暮风查看:2 回复:5 评论:2 创建时间:2019-03-09T21:52:06
写一个教程用来教大家做一个独特的运动系统。
EP1 - 基本的运动体系
首先,我们给角色两个私有的变量分别叫做dx与dy(当然名字随你取)。
dx与dy分别表示这个角色在x方向与y方向上移动的速度。
注意,这里是速度,并不是他的坐标。
然后,我们编写最基本的几个函数。
分别可以修改速度,加速度与查看速度;
函数这一块,如果不会请自行查阅源码图鉴。
然后接下来。
我们要让角色运动起来。
所以我们定义一个“更新”函数。他会在被调用时让这个角色沿着两个速度的方向之和前进一次。
其实就是移动一次。
这里我们让他每一帧都更新一次。
(为了方便查看运动轨迹,加入一步执行内的程序)
然后,当你给他一个速度时,他应该就会开始运动了awa。你可以尝试多加一些函数,看看会有什么神奇的运动轨迹。
举个例子
然后他就会出现这一种神奇的运动。
组合一些奇奇怪怪的东西,看看玩不玩得起来awa
-END-
点赞0
评论
EP2 - 方向的实现
上面我们讲了基本的运动方式,但是我们会发现这个角色,他转都不转一下。
那么接下来,我们要让他能根据运动的速度确定一个方向。
代码不难,放图:
当然发个代码不说话是最蠢的教程了,那么接下来我需要讲解一下三角函数基础知识。数学不好的小伙伴们可以先跳过~
在一个直角三角形内,对于一个不是直角的角∠A=α;
sin α是指这个角的对边÷斜边的比值。cos α是指这个角的邻边÷斜边的比值。tan α是指这个角的对边÷邻边的比值。
而arctan指的就是输入比值,返回给你角度。
但是有一点要注意,编程猫中的arctan函数是没有大于180度的值的。
所以当dx<0时,要让他转180°。
加上这个方向函数之后,我们让角色不断面向这个角度。
那么角色就会不断朝向正确的方向了。
为什么不直接用移动( )步呢?
这个我们之后在讲横向移动的时候会说到。
- END -
点赞0
评论