Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java修复您的时间步_Java_C++_Game Loop - Fatal编程技术网

用Java修复您的时间步

用Java修复您的时间步,java,c++,game-loop,Java,C++,Game Loop,我读过这篇文章 但我似乎无法将其转换为Java,我的意思是: double t = 0.0; const double dt = 0.01; double currentTime = hires_time_in_seconds(); double accumulator = 0.0; State previous; State current; while ( !quit ) { double newTime = time(); double frameTime = n

我读过这篇文章

但我似乎无法将其转换为Java,我的意思是:

double t = 0.0;
const double dt = 0.01;

double currentTime = hires_time_in_seconds();
double accumulator = 0.0;

State previous;
State current;

while ( !quit )
{
     double newTime = time();
     double frameTime = newTime - currentTime;
     if ( frameTime > 0.25 )
          frameTime = 0.25;   // note: max frame time to avoid spiral of death
     currentTime = newTime;

     accumulator += frameTime;

     while ( accumulator >= dt )
     {
          previousState = currentState;
          integrate( currentState, t, dt );
          t += dt;
          accumulator -= dt;
     }

     const double alpha = accumulator / dt;

     State state = currentState*alpha + previousState * ( 1.0 - alpha );

     render( state );
} 

他使用的
状态
类是什么?我下载了代码,但找不到它的声明?Java中的代码会是什么样子?

状态更像是一个抽象概念。他只是在插一个数字。例如,状态可以是实体的x位置

给你举个例子:

float x = x*alpha+oldX*(1-alpha);
在我的物理游戏中,我在每次渲染期间将alpha值传递给我的所有实体。在渲染过程中,他们将使用此选项来计算其位置的最佳近似值。我建议你也这样做。只需让渲染例程接受alpha,并让每个对象跟踪其旧状态

因此,每个实体都会使用其最后位置和当前位置猜测渲染时的实际位置

编辑:


国家更像是一个抽象的概念。他只是在插一个数字。例如,状态可以是实体的x位置

给你举个例子:

float x = x*alpha+oldX*(1-alpha);
在我的物理游戏中,我在每次渲染期间将alpha值传递给我的所有实体。在渲染过程中,他们将使用此选项来计算其位置的最佳近似值。我建议你也这样做。只需让渲染例程接受alpha,并让每个对象跟踪其旧状态

因此,每个实体都会使用其最后位置和当前位置猜测渲染时的实际位置

编辑:


它是一个简单的结构,包含每个积分步骤之前的当前位置和速度。它在中定义,也在可从该页面下载的代码的
Timestep.cpp
开头附近定义:

struct State
{
     float x;          // position
     float v;          // velocity
};

它是一个简单的结构,包含每个积分步骤之前的当前位置和速度。它在中定义,也在可从该页面下载的代码的
Timestep.cpp
开头附近定义:

struct State
{
     float x;          // position
     float v;          // velocity
};

哦,我明白了。但是代码在Java中会是什么样子呢?还有
租用时间(以秒为单位)()
的意思是
System.currentTimeMillis()/1000?是的,这就是雇佣时间(以秒为单位)的意思。java中的代码实际上取决于您正试图做什么,但我将为您编写一个示例……哦,我明白了。但是代码在Java中会是什么样子呢?还有
租用时间(以秒为单位)()
的意思是
System.currentTimeMillis()/1000?是的,这就是雇佣时间(以秒为单位)的意思。java中的代码实际上取决于您正试图做什么,但我将为您编写一个示例。。。