我如何在 Java libGDX 中正确地将足迹添加到我的游戏中

How do i properly add footprints to my game in Java libGDX

我正在尝试将脚印添加到我的游戏中,这样当玩家走过雪地或沙子等时,它会产生逐渐消失的小脚印。 下面的代码几乎可以工作。发生的事情是当玩家不断地留下新的足迹 走,所以我得到一长排难以区分的足迹网格,这些足迹随着每个游戏周期而更新。

我认为我需要的是新足迹之间的延迟,但我不确定如何正确地做到这一点。 有人有什么建议吗?

if(player.overlaps(snow))
          { 
             if(player.getSpeed() != 0)
             {
             FootPrint footPrint = new  FootPrint(0,0, mainStage);
             hero.toFront();
             footPrint.setPosition(player.getX(), player.getY());
             footPrint.addAction(Actions.fadeOut(5.0f));   
             footPrint.addAction(Actions.after(Actions.removeActor()));
              }
         }

您可以添加 FootprintIntervalCounter 个实例并在您的算法中调用它。天真的实现是:

public class FootprintIntervalCounter {

    private long lastRenderTimeMillis;
    private long interval;
    private boolean renderingCompletionFlag;

    public boolean isFootprintNeeded() {
        if (!renderingCompletionFlag) {
            return false;
        }
        long currentTime = System.currentTimeMillis();
        boolean isNeeded = (currentTime - lastRenderTimeMillis) > interval;
        if (isNeeded) {
            renderingCompletionFlag = false;
        }
        return renderingCompletionFlag;
    }
    
    public void afterFootprintIsRendered(long renderTimeMillis) {
        renderingCompletionFlag = true;
        lastRenderTimeMillis = renderTimeMillis;
    }
}