首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LWJGL在较高的FPS下运行较慢?(三角洲)

LWJGL在较高的FPS下运行较慢?(三角洲)
EN

Stack Overflow用户
提问于 2014-10-25 04:12:38
回答 1查看 140关注 0票数 0

我最近开始开发我自己的游戏引擎来取乐。我实现了一种从文件中加载Blender .OBJ模型的方法,并且正在成功地呈现它们。然而,在做压力测试时,我遇到了一个不寻常的困境,因为我的基于Delta的fps系统。当我跑到1500 end的时候,我花了4秒的时间从一堵墙向另一头望去。但是,如果我将FPS设置为120 FPS,那么我只需0.84秒就可以从墙的一端看到另一端。随着我的进一步探索,它似乎,实际上,游戏的移动速度下降,随着FPS的增加。

这是我的计时器课:

代码语言:javascript
运行
复制
class Timer
{

    long lastFrame;

    int fps;
    long lastFPS;

    int delta;

    int fpsToReturn;



    public Timer()
    {
        lastFPS = getTime();
    }

    public long getTime()
    {
        return (Sys.getTime() * 1000) / Sys.getTimerResolution();
    }

    public int getDelta()
    {
        long time = getTime();
        delta = (int) (time - lastFrame);
        lastFrame = time;

        return delta;
    }

    public void updateFPS()
    {
        if (getTime() - lastFPS > 1000)
        {           
            fpsToReturn = fps;

            fps = 0;
            lastFPS += 1000;
        }
        fps++;
    }

    public int getFPS()
    {
        return fpsToReturn;
    }
}

当然,运动只是沿着:

代码语言:javascript
运行
复制
camera.rotX += (0.5 * timer.getDelta());

有人有什么想法吗?三角洲时间应该是这样运作的吗?当运行在16 FPS时,它返回约65,在120 FPS Delta返回约8-9,而无上限FPS总是返回0或1,如果这有区别,或帮助您发现有什么不对劲的无上限FPS。我真的很感谢你们的帮助,谢谢你们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-26 06:13:47

解决了我自己的问题,很高兴我在这个过程中学会了。

我后来在实现角运动时发现了我的问题,那就是我每次需要时都使用getDelta()和getFPS()方法,这就抛出了增量变量。我解决了这个问题,使用了一个静态变量,一个用于FPS,一个用于Delta,并在每个帧的末尾更新每个变量。

伪码:

代码语言:javascript
运行
复制
public static double globalDelta;

while(nextFrame) //Loops once per frame
{
    updateGame();

    globalDelta = calculateDelta();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26559257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档