Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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 libGDX中正确地为游戏添加示意图_Java_Libgdx - Fatal编程技术网

如何在Java libGDX中正确地为游戏添加示意图

如何在Java libGDX中正确地为游戏添加示意图,java,libgdx,Java,Libgdx,我试图在我的游戏中添加脚印,这样当玩家在雪地或沙滩上行走时,它会产生一些小脚印,这些脚印会逐渐消失。 下面的代码几乎可以工作。发生的事情是,当玩家 行走,所以我得到了一长排难以区分的脚印网格,这些脚印随着每个游戏周期而更新 我认为我需要的是新足迹之间的延迟,但我不知道如何正确地做到这一点。 有人有什么建议吗 if(player.overlaps(snow)) { if(player.getSpeed() != 0) {

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

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

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;
    }
}

您可以添加
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;
    }
}
谢谢:)我最终实现了一个版本的ur answear,它现在运行良好:)谢谢:)我最终实现了一个版本的ur answear,它现在运行良好:)