关于小球做自由落体运动落地静止状态的判断

发布于 2022-09-06 04:36:28 字数 822 浏览 44 评论 0

初探游戏,不是很懂这些,只是想尝试尝试,希望大佬们解惑!

小球落体

下面是小球下落的位移代码 ( 用的是阿里开源的Hilo引擎 ) :

// 整个弹跳过程
onUpdate: function () {
    // 如果已经静止则停止弹跳
    if(this.isStatic) return;

    //  下落位移等于上一次的位移加上加速度
    this.move += this.gravity;
    //   y轴坐标
    var y = this.y + this.move;

    if(y >= this.groundY - this.height) {
        // 弹珠碰触地面
        this.y = this.groundY - this.height;
        // 速度反向(这里假设转化1/5的热量)
        this.move *= -0.8;
        // 判断是否速度为0即静止状态
        if (???) {
            // 弹珠静止
            this.isStatic = true;
        }
        // 设置弹珠弹跳次数
        this.up = this.move > 0 ? this.up : this.up + 1;
    } else {
        this.y = y;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

从来不烧饼 2022-09-13 04:36:28

你的代码速度永远不会为0,所以只需要判断它小于某个值就行了,眼睛是看不出来的。

if(Math.abs(this.move) < 0.01) {
    static = true;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文