c# - 如何为服务器上的每个用户运行计时器
问题描述
我正在开发简单的游戏服务器,它应该像这样工作:
- 用户连接到服务器并启动计时器,将变量 Quest 设置为 true
- 计时器将倒计时 X 秒
- 用户可以断开与服务器的连接,然后从相同或不同的设备再次连接以检查计时器进度(如果变量 Quest == true,则任务正在进行中)
- 当计时器到达 0 时,它会将 Quest 设置为 false
服务器应该同时处理多个用户。
我的问题:我已经完成了第 1 部分和第 2 部分,但我不知道如何将变量连接到某个用户名。任何帮助,将不胜感激
解决方案
如果您目前有类似的东西:
class GameServer {
Timer questTimer;
bool quest;
// ...
那么您可能希望将该全局状态封装到每个玩家自己的类中:
class PlayerState {
Timer questTimer;
bool quest;
}
并Dictionary
为每个玩家的状态设置一个以玩家姓名为键的键:
class GameServer {
Dictionary<string, PlayerState> states = new Dictionary<string, PlayerState>();
// ...
操纵字典超出了这个问题的范围——上面链接的文章应该会给你一些想法。
推荐阅读
- javascript - 使 D3 版本 5 地图海洋类似于 D3 版本 3 地图海洋
- python - 如何使用 Telethon 获取电报私人频道 ID
- android - 在android中的服务中访问viewModel
- odoo - 如何仅从字段 datetime odoo 10 添加日期的 sql 约束?
- google-sheets - Google表格十进制数,如何删除逗号并添加零
- gnuplot - gnuplot中的水平条形图
- visual-studio-code - 我可以在 Python/C++ 中创建 VS Code 扩展吗?
- java - 面向多个用户的 Spring Boot i18n
- python - 在 __getitem__ 上使用 type.overload 和 PyCharm
- r - 我是否正确使用带有有序变量的 dbRDA?输出中的 *.L 和 *.Q 箭头是什么?