GameObject遵循另一个GameObject流畅的Java

时间:2017-06-03 19:47:15

标签: java

所以在我的游戏中我有一个玩家,手里拿着一个灯泡。(灯泡是一个像玩家一样自己的游戏对象)现在我将灯泡位置设置到玩家位置,这样灯泡就会放在球员手。我想要做的是,当玩家移动灯泡跟随玩家时,会有一点延迟。

public void tick() {
    bulbX = playerX + 20;
    bulbY = playerY - 3;
}

任何想法??

非常感谢,Maxi

1 个答案:

答案 0 :(得分:0)

设置它以使灯泡始终朝向播放器移动。

public void tick() {
    bulbX += (playerX - bulbX)/2;
    bulbY += (playerY - bulbY)/2;
}

这样,如果距离较远,灯泡将更快地向播放器移动。您可能需要调整1/2参数。

我也希望为我的代码添加时差,因此游戏不会因帧速率而变慢。

long time1 = System.currentTimeMillis();
while(running){
    long time2 = System.currentTimeMillis();
    float timeDiff = (time2-time1)/1000f;
    time1 = time2;
    tick(timeDiff);
}

和tick方法:

public void tick(float timeDiff){
    float factor = 2;
    bulbX += (playerX - bulbX)*factor*timeDiff;
    bulbY += (playerY - bulbY)*factor*timeDiff;
}

这样,在足够高的帧速率下,灯泡会以指数方式接近播放器。