gpt4 book ai didi

c# - 在 C# 中制作计时器 - 秒到分钟到小时等

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:48 25 4
gpt4 key购买 nike

我正在尝试用 C# 制作一个计时器。为此,我计算帧数,然后创建一个等于帧数除以 60 的变量(秒)。我还通过另一个等于秒数除以 60 的变量(分钟)来计算分钟数。

问题当分钟数增加一秒时,秒数会一直计数,我不确定如何解决这个问题。我想在秒数达到 60 时将分钟加一,然后在不将分钟设置为零的情况下返回零。

这是我尝试过的:

    int frames = 0;
int seconds = 0;
int minutes = 0;

这是在更新中:

    protected override void Update(GameTime gameTime)
{

minutes = seconds / 60;

seconds = frames / 60;

frames += 1;

最佳答案

我建议您计算帧数,并在需要时从中得出秒数和分钟数。因此,如果您真的需要更新每个 Update 调用中的所有变量,您需要:

frames++;
seconds = (frames / 60) % 60;
minutes = frames / (60 * 60);

或者为了更清楚,定义一些常量:

const int FramesPerSecond = 60; const int SecondsPerMinute = 60; const int FramesPerMinute = FramesPerSecond * SecondsPerMinute;

...

frames++;
seconds = (frames / FramesPerSecond) % SecondsPerMinute;
minutes = frames / FramesPerMinute;

(如果您需要在一小时后将分钟重置为 0,则需要进一步扩展。)

虽然不清楚您要做什么 - 很可能有更好的方法来实现它。如果你确实想计算帧数,这很好......但如果你想计算耗时,你应该记住一个基准时间,然后从当前时间中减去它,而不是依赖计时器触发 < em>正好每秒一次。

关于c# - 在 C# 中制作计时器 - 秒到分钟到小时等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13539450/

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