更高性能的Javascript游戏?

更高性能的Javascript游戏?,javascript,game-engine,requestanimationframe,Javascript,Game Engine,Requestanimationframe,到调用游戏循环的区块内,这将我的平均速率从12.56提高到56+。然而,在性能测试中,我的帧率仍然下降到13(最低)。(我不确定这是否是因为性能采样) 如何实现更高性能的勾号代码以保持较高的最低帧速率?关于改进功能代码的问题更适合于感谢,我将在那里发布。与每次使用requestAnimationFrame时重新绑定不同,您可以在installLoops方法中将loop重新指定为绑定函数this.loop=this.loop.bind(this)。然后您可以只使用requestAnimationF

到调用游戏循环的区块内,这将我的平均速率从12.56提高到56+。然而,在性能测试中,我的帧率仍然下降到13(最低)。(我不确定这是否是因为性能采样)


如何实现更高性能的勾号代码以保持较高的最低帧速率?

关于改进功能代码的问题更适合于感谢,我将在那里发布。与每次使用
requestAnimationFrame
时重新绑定不同,您可以在
installLoops
方法中将
loop
重新指定为绑定函数
this.loop=this.loop.bind(this)
。然后您可以只使用
requestAnimationFrame(this.loop)
并避免生成新函数的开销。@jmoerdyk如果代码执行不足,被认为无法工作,那么在这里就更好了。
installLoops() {
    window.requestAnimationFrame(this.loop.bind(this));
}


loop() {
    this.now = Date.now();
    var delta  = this.now - this.last;
    this.last = this.now;

    this.dt = this.dt + delta;

    if (this.dt < this.rate) {
        window.requestAnimationFrame(this.loop.bind(this));
        return;
    } else {
        this.game.loop();
        this.draw();
        this.dt = this.dt - this.rate;
        this.game.loopKeyboardInput(this.key_pressed_map);
        this.key_pressed_map = {};
    }

    window.requestAnimationFrame(this.loop.bind(this));
}
this.game.loopKeyboardInput(this.key_pressed_map);
this.key_pressed_map = {};