? ? ? ? ? ? ? ? ? ? ? ? 控制臺小游戲框架
? ? ? ? 通過幾個月的C++學習,寫了不少的控制臺小游戲。寫的時候發(fā)現(xiàn)游戲的各個部分的打印都是分別進行,在同一個位置往往打印不止一次,這樣消耗了時間并且不利于管理。在之前我有簡單的了解過cococs2dx,所以我想用一個Manager類管理屏幕上所有的東西。并且將數(shù)據(jù)與屏幕刷新分開,用一個類來控制顯示。所以我初步定義了幾個類:Manager、Camera、Node。Camera用來控制顯示,Node是所有物體的基類。所有的物體都需要加入到Manager才被Camera顯示。
? ? ? ? 下面說一下Camera顯示的方法,我用了一個屏幕對應(yīng)大小的二維數(shù)組來緩存當前屏幕信息Arr1,還定義一個同樣的二維數(shù)組用來接收下一次刷新后的屏幕信息Arr2。將Manager類的所有的物體從最底層一次覆蓋到Arr2。如果直接用Arr2去重新打印一遍耗時套多,所以遍歷Arr2中與Arr1不同的值,修改屏幕對應(yīng)位置的信息,用以減少操作。代碼如下,其中一部分代碼是對中英文的不同處理

? ? ? ?代碼太多還是不貼了, 其中還有一些小的知識點,包括多叉樹的遍歷查找、事件委托、同級子類的相互轉(zhuǎn)換等等,有興趣的可以看看源代碼。其中有我簡單做的一個背包,如下圖

? ? ? 源代碼地址:源代碼