计算某个操作的运行次数

时间:2017-04-03 21:27:30

标签: c# unity3d time

您好!目前,我正在尝试用 C# Unity 开发游戏,在游戏打开甚至是的关闭即可。 在我的游戏中我有:

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

示例

速度为3,延迟为0.5。所以它需要0.33(1/3)秒才能赚钱并等待0.5秒才能启动"循环"试。

虽然游戏开启时运行正常,但我不知道如何计算你在游戏外赚钱的次数。

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

3 个答案:

答案 0 :(得分:2)

所以基本上你的玩家每速度/ 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

答案 1 :(得分:1)

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

举个例子:

DateTime startTime = new DateTime(636268559590016930L);
DateTime endTime = DateTime.Now;

TimeSpan span = endTime.Subtract(startTime);
Debug.Log(span);

答案 2 :(得分:0)

查看Coroutine&#39}。您可以在游戏中指定它们运行的​​频率。当游戏结束时,C#' TimeSpan用于衡量最后一次收款与DateTime.Now减去当前DataTime.Now之间的时间。这将给出一个TimeSpan,您可以按单位获得时间。