gpt4 book ai didi

java - 如何获得游戏的实时时间

转载 作者:搜寻专家 更新时间:2023-10-31 19:27:42 26 4
gpt4 key购买 nike

我正在使用 Java 开发游戏。在这个游戏中,实时是非常重要的部分。出于这个原因,我正在尝试使用 Ntp 获取实时时间。

我在网上找到的就是这段代码。

import java.net.InetAddress;
import java.util.Date;
import org.apache.commons.net.ntp.NTPUDPClient;
import org.apache.commons.net.ntp.TimeInfo;

public class test{
public static void main(String args[]) throws Exception{
String TIME_SERVER = "time-a.nist.gov";
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
TimeInfo timeInfo = timeClient.getTime(inetAddress);

long returnTime = timeInfo.getReturnTime();
Date time = new Date(returnTime);

System.out.println("Time from " + TIME_SERVER + ": " + time);
}
}

我的问题是,使用这个,系统仍然在获取 System.currentMillis();因为它实际上会打印出您本地机器收到时间消息的时间。因此,如果玩家将他的桌面时间更改为 future ,游戏时间也会发生变化。

如果有人可以提供帮助以获得实时信息,我将不胜感激。附言我没有服务器,我的游戏将在 Kongregate 上玩,数据将在玩家的计算机上。

提前致谢。

最佳答案

只需在程序开始时通过 NTP 获取一次时间,然后使用 System.nanoTime() 获取相对时间。它是完全单调的,不会通过系统时间的设置而改变。

关于java - 如何获得游戏的实时时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27604729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com