Java Slick2D每x秒移动一个对象



我目前正在使用2D游戏,其中玩家精灵将其他精灵推向屏幕上。

我当前的代码(在子类中): //x和y是我想要这个对象移动到的坐标(例如50像素 其起点等的权利。)

public Boolean move(float x, float y, int delta) {
       this.setx(x);
}

如何使对象移动每1秒说50像素?或者每个X帧。

我已经尝试使用三角洲,但是这会导致平稳运动,这很难控制我的特定需求。

任何帮助都将不胜感激

您用三角洲完成它的方法是正确的。假设您在更新方法中具有移动方法并将其调用(或以类似方式实施)。您可以实现这些目标的一种方法是以下内容:

class YourGameStateWithUpdateRenderInit extends BasicGameOrWhatever{
//Global variables for updating movement eacht second.
float myDelta = 0; // your current counter
float deltaMax = 1000; // 1 second, determines how often your object should move
public void update(...){
      objectToMove.move(50,50,delta); //The object which contains the move method and you move it by 50 x/y per second.
      }
}

在您的objectTomove类中您有移动方法:

public Boolean move(float x, float y, float pDelta) {
  myDelta += pDelta;
  if(myDelta >= deltaMax){
    this.setx(x);
    myDelta = 0;
  }
}

这应该每秒进行一次更新。但是,这种实现并不是真正的好或精确,因为您可能在子类中具有该移动方法或类似的方法。因此,您需要适应您的需求,但我希望您能得到它的想法。我认为它演示了将类属性计数的目的由增量值计算直到某个值(例如1000秒),然后将其设置为零。

相关内容

  • 没有找到相关文章

最新更新