我正在使用game_loop
pub包来处理我的eventloop。问题是它经常更新。我不需要经常更新或重绘,输入密钥重复也太快。我不太了解eventloops或浏览器重绘,所以我可能会认为这是错误的方式,但有没有办法减慢循环?
答案 0 :(得分:1)
在单独的Isolate
中运行繁重的任务,同时保持游戏循环尽可能轻量级。应使用window.animationFrame
实现游戏循环。 How do I drive an animation loop at 60fps with Dart?您应该了解requestAnimationFrame 的全部内容 - 这是平滑动画的关键。
您的游戏逻辑速度不应取决于浏览器FPS(每秒帧数)而是使用调度程序而不是Does Dart have a scheduler?
答案 1 :(得分:0)
尝试添加计时器并避免向GameLoop实例添加onUpdate或onRender处理程序:
//timer fires 20 times per second, as an example
gameLoop.addTimer(render,0.05,periodic: true);
...
...
render(GameLoopTimer timer)
{
//draw or update code here
}