简体   繁体   English

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

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

I am trying to add footprints to my game so when the player walks over snow or sand etc it produces little footprints which fade out.我正在尝试在我的游戏中添加脚印,因此当玩家走过雪或沙等时,它会产生淡出的小脚印。 This code below almost works.下面的代码几乎可以工作。 What happens is that it constantly makes new footprints when the player walks so I get a long row of an indistinguishable mesh of footprints which update with each gamecycle.发生的情况是,当玩家行走时,它会不断制造新的脚印,所以我得到一长排难以区分的脚印网格,每个游戏周期都会更新。

What I believe I need is a delay between new footprints but I am not sure how to properly do that.我认为我需要的是新足迹之间的延迟,但我不确定如何正确地做到这一点。 Does anyone have any suggestions?有没有人有什么建议?

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

You can add FootprintIntervalCounter instance and call it in your alghorithm.您可以添加FootprintIntervalCounter实例并在您的算法中调用它。 The naive implementation is:天真的实现是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM