所以在我的游戏中我有一个玩家,手里拿着一个灯泡。(灯泡是一个像玩家一样自己的游戏对象)现在我将灯泡位置设置到玩家位置,这样灯泡就会放在球员手。我想要做的是,当玩家移动灯泡跟随玩家时,会有一点延迟。
public void tick() {
bulbX = playerX + 20;
bulbY = playerY - 3;
}
任何想法??
非常感谢,Maxi
答案 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;
}
这样,在足够高的帧速率下,灯泡会以指数方式接近播放器。