requestAnimationFrame()和setTimeout() - 每秒增加的帧数

时间:2016-07-26 13:45:50

标签: javascript

我做了一个简单的游戏,我有问题 - 游戏结束后你开始新的游戏动画速度增加(因为我检查了另一个选项,我知道每秒的帧数量要高得多)。每次新游戏开始时速度动画速度都会急剧增加。那是因为使用了requestAnimationFrame吗?为什么会这样?

function Game() {
     this.startGame();
}

_p = Game.prototype;

_p.startGame = function() {
    //game functions
    this.renderer.drawGame();
    this.update();
    this.handleCollisions();
    this.stats.overheat--;
    this.overheating();
    this.handleClicks();

    if(this.gameOver() == false){
        requestAnimationFrame(this.startGame.bind(this));
        //I tried do this in this way too:
        //setTimeout(this.startGame.bind(this), 20)
    }
};

_p.gameOver = function() {
    if(this.stats.chances < 1){
        var self = this;
        this.renderer.endGameScreen();
        soundManager.pauseAll();
        document.addEventListener("click", function(){
            self.stats.chances = 3;
            self.stats.scores = 0;
            self.stats.overheat = 0;
            self.startGame();
            soundManager.resumeAll();
        });
    } else {
        return false;
    }
};

0 个答案:

没有答案