首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提高Java中定时器的速度

提高Java中定时器的速度
EN

Stack Overflow用户
提问于 2013-05-20 10:20:19
回答 1查看 2K关注 0票数 2

我正在用Java制作一个游戏,目前我所有的动画和游戏控制都使用计时器。但我在选择提高计时器速度的正确方法时遇到了麻烦。我的游戏应该随着游戏的进展越来越快,我发现有很多方法可以提高我的对象的速度,但我不确定哪种方法是最有效的。

例如,假设int xpos是递增对象xposition的变量。

代码语言:javascript
运行
复制
Timer timer = new Timer(100, new ActionListener()  //01
{                                                  //02
    public void actionPerformed(ActionEvent e)     //03
    {                                              //04
        xpos++;                                    //05
        repaint();                                 //06
    }                                              //07
}                                                  //08
                                                   //09
timer.start();                                     //10

为了提高速度,我可以将第5行上的xpos增量增加到xpos+=2

我还可以通过将计时器的毫秒参数减少到第1行上的:Timer timer = new Timer(50, new ActionListener()来提高速度。

或者我可以添加第二个计时器,它将执行相同的任务,从而使计时器的速度加倍。

代码语言:javascript
运行
复制
Mover mover = new Mover();
Timer timer = new Timer(100, mover);        
Timer timer2 = new Timer(100, mover);
timer.start();
timer2.start();

class Mover implements ActionListener
{                                                  
    public void actionPerformed(ActionEvent e)     
    {                                              
        xpos++;                                    
        repaint();                                 
    }                                              
}   

你认为哪一个最有效?或者我应该将所有这些技术结合起来?感谢您的回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 10:34:10

保持定时器节拍稳定,invariant.

  • Store您的逻辑位置和速度为双倍或Point2D.Double.

  • Don't取决于定时器的准确性interval.

  • Calculate位置的变化基于速度和系统时间的变化。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16641660

复制
相关文章

相似问题

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