2016-01-01 54 views
1

我正在嘗試在visual C++ 2010中製作一個roguelike遊戲,每次玩家進行移動時都會打印出一個屏幕。不幸的是,它使用了8000個字符,因此每刷新一次就需要一秒左右的時間才能打印出來。它看起來可能不多,但考慮到遊戲中涉及的移動次數,它會加起來。我在visual C++ 2010中做了一個roguelike,如何加快打印速度?

我試着與stdio取消同步,將所有字符編譯成一個字符串,然後用cout打印字符串,並用_putch()打印字符;但每種方法仍然存在重要的打印時間。我嘗試重複打印一個不變的字符串,以測試它是否會引起延遲,但是當唯一的任務是打印時仍然存在延遲。

我的問題是,有什麼我可以嘗試,可能會加快進程?我的一位朋友建議ncurses,這是否值得一試?如果是這樣,我該怎麼做,如果沒有,我還可以嘗試什麼?

+2

您可能需要做一些特定於平臺的事情。我可能會建議尋找['CreateConsoleScreenBuffer'](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682122(v = vs.85).aspx),['SetConsoleActiveScreenBuffer']( https://msdn.microsoft.com/en-us/library/windows/desktop/ms686010(v=vs.85).aspx)和['WriteConsoleOutput'](https://msdn.microsoft.com/zh-cn/ -us /庫/窗/桌面/ ms687404(v = vs.85)的.aspx)。 [這是一個演示](https://msdn.microsoft.com/en-us/library/windows/desktop/ms685032(v = vs.85).aspx)。 ncurses可以工作,但我從來沒有嘗試過。 – Cornstalks

+1

我建議您完全脫離控制檯,並開始使用實際的光柵圖形,可能使用SDL或SFML之類的庫。 –

+0

我沒有很多編程經驗,所以我不知道圖形庫是否可以做:/ – user40146

回答

-1

我同意cornstalks。但是,如果你正在尋找一個純控制檯遊戲,我會建議你利用內置的ctime庫。從圖書館(如SDL1.2)學習或瞭解如何使用實體系統處理基於時間的硬編碼事件。有很多有效的方法來存儲這些字符並將它們打印成jiff。或者,您可以使用SDL並使遊戲窗口看起來像是一個控制檯,並將所有內容作爲光柵圖形處理。

+0

歡迎來到StackOverflow!不幸的是,這並沒有真正回答所問的問題。如果這是一個普通的討論論壇,你的迴應可能沒問題,但StackOverflow有點不同,它是一個問答網站。一般來說,答案應該完整並回答問題。 – Cornstalks

相關問題