《游戏编程入门》学习笔记8——添加第二个小人

  下一个目标:添加进另一个角色,实现两个人物的显示和控制!

 

    在进行下面的工作之前,先整理下代码。因为之前的工作都是半实验性质,所以代码添加得都很随意,有些不是很规范,但是不知不觉中,项目完工的那一天似乎都指日可待了,哈哈。之后可能会有很多新的创意加入,代码会变得越来越复杂,这时良好的习惯能保证以后的工作不太容易出错。

    总之,回顾全部代码,去除冗余,将常量宏定义一律规范为大写方式,规范代码书写格式,该留意的地方添加上注释,等等。

 

    现在加入第二套矩形及相关控制代码,这个应该不难。

 

    我是很想将两个角色差异化的,即有各自不同的体型、速度、血量等,同时又能够达到综合能力上的平衡,角色雷同固然在竞技角度考虑更容易达到公平,但差异化是一个优秀游戏的必备因素。但是现在为了尽快看到结果,暂时将这些工作放到以后。

 

    为了后续开发的方便,我现在想将两角色的各个参数预先区分出来,只是暂时定义为同样的数值。

    这时,想到用结构体来记录可能更加便捷,猪哥代码写得少,结构体用法掌握得都不太确切,现在正好巩固下。其实有个事实一直存在,猪哥用着C++的编译器,写着cpp代码,却始终都在用C的思维方式写程序,也许此时C++的类会是更科学的选择,比如这本《21天学通C++》,就干脆没有讲结构体这一概念。

    结果试图用struct的尝试以失败告终,VC2008似乎不是完全兼容C的,看了下书,C++struct被当做类来处理,与class等效,不过在默认是public还是private属性上有区别。于是猪哥决定就用一用这个class吧!这时麻烦来了,类的定义和初始化等操作并没有想象中那么简单,假如不定义构造函数,只是简单的在定义对象后对对象的各个参数进行初始化,并不能编译通过。所幸铁哥提供了一个自定义构造函数和析构函数的办法来暂时解决了这个问题,不过我们都对这个编译器错误产生的机理完全不了解,这说明C++还是有必要深入研究的。

    假如在此问题上纠缠不清,必将陷入长时间看书昏昏欲睡而无所获的境地,所以暂时放一放,继续编写游戏吧。

 

    如前所说,加入第二个角色并不难,注意人物是对称的所以有些坐标位置要调整。我定义第一个人物用A,D,Space来操控,第二个用左右键及小键盘的Num0,猜得出Space键的键值是DIK_SPACE,但是小键盘呢?到dinput.h这个文件里可以查到完整的键盘值表,小键盘是DIK_NUMPAD0

 

    好,现在可以操控两个人物了,是不是感觉越来越像个真正的游戏了呢?

 

    下一步应该是要进行碰撞检测及伤害、剩余血量计算等。

    但是这里我想先停下来,静静的思考一下到底需要做些什么。不知道该做什么永远是不会知道怎么干的。因为前期只是作了一个大概游戏策划,很多规则细节都要现在临时斟酌。

你可能感兴趣的:(《游戏编程入门》学习笔记8——添加第二个小人)