我正在嘗試在visual C++ 2010中製作一個roguelike遊戲,每次玩家進行移動時都會打印出一個屏幕。不幸的是,它使用了8000個字符,因此每刷新一次就需要一秒左右的時間才能打印出來。它看起來可能不多,但考慮到遊戲中涉及的移動次數,它會加起來。我在visual C++ 2010中做了一個roguelike,如何加快打印速度?
我試着與stdio取消同步,將所有字符編譯成一個字符串,然後用cout打印字符串,並用_putch()打印字符;但每種方法仍然存在重要的打印時間。我嘗試重複打印一個不變的字符串,以測試它是否會引起延遲,但是當唯一的任務是打印時仍然存在延遲。
我的問題是,有什麼我可以嘗試,可能會加快進程?我的一位朋友建議ncurses,這是否值得一試?如果是這樣,我該怎麼做,如果沒有,我還可以嘗試什麼?
您可能需要做一些特定於平臺的事情。我可能會建議尋找['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
我建議您完全脫離控制檯,並開始使用實際的光柵圖形,可能使用SDL或SFML之類的庫。 –
我沒有很多編程經驗,所以我不知道圖形庫是否可以做:/ – user40146