本文主要是介绍用正弦函数实现跳跃弧线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1,想法来源
在游戏中,需要实现一个跳跃的功能,我最开始用的是重力加速度。即水平速度不变,垂直速度加等于重力,但策划觉得不好调。
最后决定使用固定的曲线函数实现,即X轴速度不变,Y轴按照距离最高点的距离求位置。
这样就可以就联想到了正弦函数。
2,正弦函数
标准的正弦函数如下:
代码实现如下:
double a = 30; // converting value to radians double b = (a * (Math.PI)) / 180; // using method and displaying result Console.WriteLine(Math.Sin(b)); a = 45; // converting value to radians b = (a * (Math.PI)) / 180; // using method and displaying result Console.WriteLine(Math.Sin(b)); a = 60; // converting value to radians b = (a * (Math.PI)) / 180; // using method and displaying result Console.WriteLine(Math.Sin(b)); a = 90; // converting value to radians b = (a * (Math.PI)) / 180; // using method and displaying result Console.WriteLine(Math.Sin(b));
打印结果为:
0.5
0.707106781186547
0.866025403784439
1
3,推导函数
有了以上储备,我们就可以得到如下函数
X轴正常运行
//Y轴代码如下
坐标Y值=高度系数 * Mathf.Sin((1 - (Mathf.Abs(坐标X值 - 最高点X值) * (1/(起点X值-最高点X值)))) * 0.5f * Mathf.PI);
这篇关于用正弦函数实现跳跃弧线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!