所以几个月以来,我一直在用 js 开发一个小型游戏项目,我意识到我构建游戏循环的方式不允许游戏跳过一帧,如果有滞后。
这意味着如果游戏用完cpu,它会开始变慢并运行得更慢,而不仅仅是跳帧
这是我实现它的方式
<script src="./processing.js"></script>
<script>
var canvas = document.getElementById("mycanvas"),ctx = canvas.getcontext("2d");
var sketchProc = function(processingInstance) {
with (processingInstance) {
size(2560,1800);
frameRate(30);
var draw = function(){
runGame();
}
}}
var canvas = document.getElementById("mycanvas");
var processingInstance = new Processing(canvas,sketchProc);
我现在知道更好的方法是计算每个循环之间经过的时间,然后将该值传递给游戏更新函数,例如
tFrame = calculateTimeframe();
updateGame(tFrame);
然而,我在开始项目时并没有意识到这一点。这意味着没有任何结构可以让我更新它。
有没有什么办法可以让我在不手动重写数千行代码的情况下解决这个问题?
(我也为此使用了 processing.js 库,我知道它已经过时了,我正在考虑将来换成 p5js)