如何创建和模拟业务模拟游戏的虚拟时间

问题描述:

我是C#的初学者,除了我通过微软课程并完成了一些基础项目。现在我想自己尝试一些东西,用Visual Studio中的c#表单创建一个非常基本的业务模拟游戏。如何创建和模拟业务模拟游戏的虚拟时间

我问过谷歌,但很难找到我要找的东西。我基本上想用一个模拟天的系统开始。假设我有一个按钮可以按下播放,当我这样做时,2017年1月1日之前的预定义日期应该增加+1天滴答,只要我不再次单击该按钮即可停止游戏。例如,在游戏Europa Universalis IV中,它的工作原理是什么,除了我甚至可以在该游戏中将速度提高5个等级,但现在这会有点过分。

我只是想了解基于经济或基于策略的游戏模拟日期的基本概念是如何工作的。我特别指出,他们甚至在2月份的欧罗巴Universalis IV中使用了28天......所以,时间或日期游戏逻辑如何工作。我也想创建这个系统来理解它。我想我需要一个表单项目,1个按钮,1个计时器和1个标签。

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

+2

这是对于SO而言,这个主题太广泛了。请阅读[问]并参加[游览] – Plutonix

+0

对于一个初学者来说,这似乎是一个相当大的任务来解决。你主要是在正确的轨道上 - 你错过的将是一个'更新'的方法。可以说,每次你打电话给更新时,你都会提前一天的日期。所以这个实现将在'_currentDate = _currentDate.AddDays(1)'的行上。然后你连接计时器来调用所述方法,并让你的按钮改变计时器调用Update的速度。也就是说,这个问题对于堆栈溢出来说实在太广泛了 - 这个站点是针对非常具体的问题定义的 – Rob

+0

[为什么“有人可以帮我吗?”不是真正的问题?](http://meta.*.com/q/284236) – EJoshuaS

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

  1. 在按一下按钮,timer.Enabled =!timer.Enabled(此反转定时器的状态,你可能想更新UI和如井)
  2. 在timer_Elapsed情况下,要更新您的游戏状态(例如_now = _now.AddHours(1); UpdateState(); UpdateUI();)
+0

有几个定时器可供您选择。您使用的主要取决于您的前端技术。 –