控制台小游戏框架
2017-07-16 本文已影响0人
Douglas_dj
控制台小游戏框架
通过几个月的C++学习,写了不少的控制台小游戏。写的时候发现游戏的各个部分的打印都是分别进行,在同一个位置往往打印不止一次,这样消耗了时间并且不利于管理。在之前我有简单的了解过cococs2dx,所以我想用一个Manager类管理屏幕上所有的东西。并且将数据与屏幕刷新分开,用一个类来控制显示。所以我初步定义了几个类:Manager、Camera、Node。Camera用来控制显示,Node是所有物体的基类。所有的物体都需要加入到Manager才被Camera显示。
下面说一下Camera显示的方法,我用了一个屏幕对应大小的二维数组来缓存当前屏幕信息Arr1,还定义一个同样的二维数组用来接收下一次刷新后的屏幕信息Arr2。将Manager类的所有的物体从最底层一次覆盖到Arr2。如果直接用Arr2去重新打印一遍耗时套多,所以遍历Arr2中与Arr1不同的值,修改屏幕对应位置的信息,用以减少操作。代码如下,其中一部分代码是对中英文的不同处理
代码太多还是不贴了, 其中还有一些小的知识点,包括多叉树的遍历查找、事件委托、同级子类的相互转换等等,有兴趣的可以看看源代码。其中有我简单做的一个背包,如下图
源代码地址:源代码