鍍金池/ 問答/網(wǎng)絡安全  HTML/ 關(guān)于小球做自由落體運動落地靜止狀態(tài)的判斷

關(guān)于小球做自由落體運動落地靜止狀態(tài)的判斷

初探游戲,不是很懂這些,只是想嘗試嘗試,希望大佬們解惑!

小球落體

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

// 整個彈跳過程
onUpdate: function () {
    // 如果已經(jīng)靜止則停止彈跳
    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;
        // 速度反向(這里假設(shè)轉(zhuǎn)化1/5的熱量)
        this.move *= -0.8;
        // 判斷是否速度為0即靜止狀態(tài)
        if (???) {
            // 彈珠靜止
            this.isStatic = true;
        }
        // 設(shè)置彈珠彈跳次數(shù)
        this.up = this.move > 0 ? this.up : this.up + 1;
    } else {
        this.y = y;
    }
}
回答
編輯回答
撥弦

你的代碼速度永遠不會為0,所以只需要判斷它小于某個值就行了,眼睛是看不出來的。

if(Math.abs(this.move) < 0.01) {
    static = true;
}
2018年6月20日 03:50