纳金网

标题: 按住跳跃键就能更高更远!!! [打印本页]

作者: 745951224    时间: 2017-9-27 16:27
标题: 按住跳跃键就能更高更远!!!
一直以来,按下跳跃键就是普通的跳是否已经腻了?
我也想要飞的更高,飞的更高~~~————来自作者模型的独白
SO,今天奉上如何处理不同的跳跃:
这是普通的跳跃:即按一下跳跃键
图片1.png
这是长按跳跃:即按住跳跃键不放
图片2.png
其实呢,短跳跃和长跳跃的用户输入区别只在于是否长按了跳跃键而已,所以我添加了一个计时器(0.5秒),用来判断用户按跳跃键按了多久。当然你们会说,按下跳跃键的一瞬间也会有时间,所以为了容错我定了个容错时间0.1秒,也就是说,当跳跃键被按下0.1秒后开始计算跳跃增量,增加上限是0.5秒。通过增加阻力来增加滞空时间,这样可以跳得更远,重复施加新的力可以跳得更高。当增量时间结束后将阻力修正。
当然,有一个问题是如果我间断的反复按下跳跃键貌似也能触发长跳跃,这个问题我给出的解决方案是检查是否处于可跳跃阶段。
                if (Input.GetKey(KeyCode.Space)) {
                        if (tiao) {
                                time_tiao -= Time.deltaTime;
                                if (time_tiao > 0&&time_tiao<0.4f) {
                                        GetComponent<Rigidbody> ().drag += 1;
                                        GetComponent<Rigidbody> ().AddForce (new Vector3 (0, 30, 0));
                                } else {
                                        GetComponent<Rigidbody> ().drag = 0;
                                }
                        }

                        if (tiaoyue > 0) {
                                tiao = true;
                                GetComponent<Rigidbody> ().AddForce (new Vector3 (0, 180, 0));
                                tiaoyue--;
                        }
                } else {
                        tiao = false;
                        GetComponent<Rigidbody> ().drag = 0;
                }

好了,今天就到这里了,大家有好的意见可以私信或回复。

图片3.png (105.54 KB, 下载次数: 254)

代码

代码






欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5