用正弦函数实现跳跃弧线

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值