【问题标题】:How to create and simulate fictive time for a business simulation game [closed]如何为商业模拟游戏创建和模拟虚拟时间[关闭]
【发布时间】:2017-01-22 22:28:50
【问题描述】:

我是 C# 的初学者,除了我参加了微软的课程并完成了一些基本项目。现在我想自己尝试一些东西,在 Visual Studio 中使用 c# 表单创建一个非常基本的商业模拟游戏。

我询问了 Google,但很难找到我要查找的内容。我基本上想从一个模拟日子的系统开始。假设我有一个按钮,我可以按该按钮向前播放,当我这样做时,只要我不再次单击该按钮暂停,像 2017 年 1 月 1 日这样的预定义日期应该会增加 +1 天刻度游戏。比如在欧陆风云IV游戏中它是这样工作的,除了我什至可以在那个游戏中将速度提高5级,但现在这有点太多了。

我只是想了解基于经济或基于策略的游戏中模拟约会的基本概念是如何运作的。我在《欧陆风云 IV》中指出,他们甚至在 2 月使用了 28 天……那么,时间或日期游戏逻辑是如何运作的。我也想创建这个系统来理解它。我想我需要一个表单项目、1 个按钮、1 个计时器和 1 个标签。

有人能指出我正确的方向吗?

【问题讨论】:

  • 这对于 SO 来说太宽泛了。请阅读How to Ask 并采取tour
  • 对于一个初学者来说,这似乎是一项艰巨的任务。您大部分都在正确的轨道上-您缺少的是“更新”方法。假设每次您调用 Update 时,您都会将日期提前一天。所以实现将在_currentDate = _currentDate.AddDays(1) 的行上。然后你连接定时器来调用所说的方法,并让你的按钮改变定时器调用Update的速度。也就是说,这个问题对于堆栈溢出来说实在是太宽泛了——这个网站是为非常具体的问题而定义的

标签: c# game-engine simulation


【解决方案1】:

几件事。 你需要一个计时器来驱动它。 您可能希望运行小于 1 天的增量,例如 1 小时 这是一个非常粗略的轮廓

  1. 单击按钮时,timer.Enabled = !timer.Enabled(这会反转计时器状态,您可能还想更新 UI 等)
  2. 在 timer_Elapsed 事件中,您想要更新游戏状态(例如 _now = _now.AddHours(1);UpdateState();UpdateUI();)

【讨论】:

  • 您可以选择多个计时器。您使用哪一种很大程度上取决于您的前端技术。
猜你喜欢
  • 2012-07-27
  • 1970-01-01
  • 2023-03-31
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多