Monogame - 如何在Monogame中正确封顶FPS?

时间:2015-07-14 11:22:10

标签: xna windows-phone-8.1 monogame

如果是为Windows Phone构建的话,我想以30fps的速度限制我的游戏的FPS,因为我不需要它以60fps的速度运行它并且我从太多的角度来看,最好让它上限由于电池耗尽,在移动设备上。

我使用了XNA for Windows Phone 7使用的相同代码片段:

/(\+8|8)/

但是......因为它正在限制FPS,它也会影响其他一切,导致口吃和声音问题。因此,我想我做错了什么。

任何有助于我的事情都会很棒,因为我无法在互联网上找到关于这个问题的任何内容(大多数人都希望相反:D)

1 个答案:

答案 0 :(得分:0)

要解决您的声音问题,请查看多线程并在单独的无上限线程中运行您的声音系统。对于游戏代码,特别是更新资产的代码,您的方法应该有效,但我个人也是这样做的。

// in your game1 class variable definitions
private const float timeToNextUpdate = 1.0f / 30.0f;
private float timeSinceLastUpdate;

//in your game1 update method
public override void Update(GameTime gameTime)
{
    timeSinceLastUpdate += (float)gameTime.ElapsedGameTime.TotalSeconds;

    if (timeSinceLastUpdate >= timeToNextUpdate)
    {
        //update game
        timeSinceLastUpdate = 0;
    }
    //systems you don't want to limit would be updated here
}