计算操作的运行次数



!目前,我正在尝试开发一款使用 C#Unity 的游戏,您可以在打开甚至关闭游戏时赚钱。在我的游戏中,我有:

  • 速度(2速度= 1/2 = 0.5秒赚钱(
  • 延迟
  • (1 延迟 = 等待再次"循环"的 1 秒(

示例

速度为 3,延迟为 0.5。因此,赚钱需要 0.33 (1/3( 秒,并等待 0.5 秒才能再次开始"循环"。

虽然它在游戏打开时运行正常,但我不知道如何计算你在游戏外赚了多少钱。

到目前为止,我已经有了自您关闭游戏以来已经过去了的秒数。

所以基本上你的玩家每速度/2 +延迟都会赚钱。因此,如果speed = 2delay = 1,他每 1/2 + 1 = 1.5 秒获得一次钱。

如果你有他关闭游戏以来经过的秒数,你可以计算出他应该收到钱的时间。

因此,在这种情况下,假设自他关闭应用程序以来的秒数是 1000。你可以找到你在哪里给他多少时间,并在应用程序加载后立即给他所有钱。

因此,有了speed = 2delay = 1,有了timeSinceClose = 1000,你需要付给他的时间是1000/1.5 = 666.667

因此,如果您每次付钱给对方 1 美元,那么一旦他加载游戏,您应该给他们1 * 666.67 = 666.67$

一般公式(其中x是支付的总金额,y是每个周期的支付金额(是:

x = (timeSinceClose/(1/speed + delay)) * y

如果您想知道自开始操作以来已经过去了多少时间,则应使用时间戳。这样,即使应用程序关闭并且您卷土重来,您也可以检查操作开始时间戳和当前时间戳之间的差异。

举个例子:

DateTime startTime = new DateTime(636268559590016930L);
DateTime endTime = DateTime.Now;
TimeSpan span = endTime.Subtract(startTime);
Debug.Log(span);

查看协程的。您可以指定它们在游戏中的运行频率。C#的TimeSpan用于游戏关闭时,用于测量上次使用DateTime.Now收集资金之间的时间减去当前DataTime.Now。这将给出一个TimeSpan,您可以以单位获得时间。

最新更新