定时运动java游戏

时间:2013-02-19 04:40:51

标签: java

    Calendar date1 = Calendar.getInstance();
    Calendar date2 = Calendar.getInstance();
    boolean checkTime = true;





        if (checkTime == true)
            before=date1.get(Calendar.SECOND);
        checkTime=false;

        after=date2.get(Calendar.SECOND);   

        difference= after-before;

我拥有它以便before变量将成为静态秒,它将继续重新计算后续时间,并获得两者之间的差异。然而,它似乎只是更新后的'变量一次,导致差值为0.

聚苯乙烯。这是我玩的游戏,我试图让这个动作相对于时间而言。 我无法弄清楚我做错了什么。

2 个答案:

答案 0 :(得分:0)

Calendar date2 = Calendar.getInstance();

获取一个使用当前日期和时间初始化的日历。之后它不会改变,因此after将始终是相同的值。如果您希望每次迭代都需要新的当前时间,则需要在每次迭代时创建一个新实例(或使用System.currentTimeMillis())。

答案 1 :(得分:0)

大多数情况下你会得到0,因为你的代码行在不到一毫秒的时间内执行。还有运行时优化和GC扮演他们的角色。

总而言之,您无法确定结果是否为非零。

你可以尝试这样的事情,

Calendar date1 = Calendar.getInstance();
try{
Thread.sleep(1000);
}catch(Exception e){}
Calendar date2 = Calendar.getInstance();

与1有所不同。

看看here