2017-01-22 101 views
-1

我是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.stackoverflow.com/q/284236) – EJoshuaS

回答

0

幾件事。 你需要一個計時器來驅動它。 你可能要運行增量小於1天,說1小時 這是一個非常粗略的輪廓

  1. 在按一下按鈕,timer.Enabled =!timer.Enabled(此反轉定時器的狀態,你可能想更新UI和如井)
  2. 在timer_Elapsed情況下,要更新您的遊戲狀態(例如_now = _now.AddHours(1); UpdateState(); UpdateUI();)
+0

有幾個定時器可供您選擇。您使用的主要取決於您的前端技術。 –