用C#创建AFK计时器 我正在尝试创建一个计时器,如果用户在10分钟内未放置任何键盘输入,则会出现一个控制台消息,说用户是AFK。我是C#的新手,所以我很乐意...

问题描述 投票:0回答:1
i我尝试查看与此有关的另一个堆栈溢出问题,但它对混合键盘输入和其中没有任何内容。如果玩家在那10分钟内没有任何键盘输入,我希望每10分钟写一次消息。随时提出任何问题,谢谢!

public const int AfkTimeUntilKick = 10; public void CheckIfPlayerAFK(){ if (AfkTimeUntilKick >= 10){ Console.WriteLine("Player Is AFK!"); afkTimer = new Timer(1000); // Timer interval in milliseconds (1000ms = 1 second) afkTimer.Elapsed += OnAfkTimerElapsed; // Attach event handler afkTimer.AutoReset = true; // Keep the timer running repeatedly afkTimer.Enabled = true; // Start the timer } }
由于AfkTimeuntilkick为10,CheckifPlayerAfk将会说,每当checkifplayerafk方法都称为afk,因为10次数等于10。
这样做的更轻松的方法是在类构造函数或游戏/应用程序的开始方法中创建计时器,并等待10分钟。

类似:

c# time game-development
1个回答
0
投票
因此,我们有一个开始的计时器,需要等待10分钟,然后说玩家已经AFK持续了10分钟。但是如果玩家按键,则不会重置。
提供有限的信息,我会认为这是.NET应用程序或类似的游戏引擎,这是如何重置AFKTimer

的示例 public void ResetAfkMonitor() { if (afkTimer.Enabled) { afkTimer.Stop(); afkTimer.Start(); Console.WriteLine("AFK monitor reset."); } } so在您的动作或输入代码中的某个地方,只要按下键,请调用此方法。如果您可以在处理运动的课程中直接实现它,那会更容易。奇怪的是,这是在游戏巨星类中被称为,也许在玩家控制器或其他行为脚本中可以更好地应用。

如果这有助于解决您的问题,请标记是正确的!

好运。 :)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.