首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.nanotime()的负值

System.nanotime()的负值
EN

Stack Overflow用户
提问于 2015-02-13 07:27:11
回答 2查看 620关注 0票数 0

有人能帮我解决我的问题吗?在我用于游戏刷新和重绘的游戏循环中,有时变量"wait“会返回负值。这怎么可能呢?

代码语言:javascript
复制
while(running) {
        start = System.nanoTime();

        update();
        draw();
        drawToScreen();

        elapsed = System.nanoTime() - start;
        wait = targetTime - (elapsed / 1000000);

        try {
            System.out.println(wait);
            Thread.sleep(wait);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2015-02-13 07:45:37

elapsed = System.nanoTime() - 开始;等待 = 目标时间 - (经过 / 1000000);

  1. wait 不是 System.nanotime() 的值;等待为负仅意味着 targetTime - (elapsed / 1000000) 为负
  2. nano = 10 亿 = 1/1000000000 所以如果 targetTime 以秒为单位你可能不想要 1000000
票数 0
EN

Stack Overflow用户

发布于 2015-02-13 10:02:59

经过的时间可能大于刷新间隔(targetTime)。在这种情况下,检查已用时间是否为+ve,并仅在此时休眠。

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

https://stackoverflow.com/questions/28489855

复制
相关文章

相似问题

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