我试图添加脚印到我的游戏,所以当玩家走在雪地或沙子等,它产生的小脚印,淡出。下面的代码几乎可以工作。当玩家行走时,它会不断地产生新的脚印,所以我得到了一长排无法区分的足迹,它们会随着每个生命周期的更新而更新。
我认为我需要的是在新的脚印之间延迟,但我不知道如何正确地做到这一点。有人有什么建议吗?
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()));
}
}发布于 2020-12-20 21:34:03
您可以添加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;
}
}https://stackoverflow.com/questions/65384678
复制相似问题