FPS游戏中用的最多的就是子弹了,这几天有不少人问我游戏中如何设计子弹?大量子弹显示的时候,游戏会不会卡?
今天有点时间,我针对这两个问题,简单的写了一个子弹的发射。
效果图:
![](http://software.intel.com/sites/default/files/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202013-02-26%20%E4%B8%8A%E5%8D%8810.09.55_0.png)
首先我们来理下如何设计的思路。
一、首先一个简单的关系:子弹肯定是由武器发射的,武器是由人物操作的。
二、也就是说子弹Bullet类只负责创建一个新子弹、子弹的移动和子弹的消失、碰撞。
Bullet类提供给外界接口:增加一个新子弹(以及子弹的速度)。
三、武器weapon类给负责调用Bullet类创建一个新子弹。同时,weapon类也要负责计算发射子弹的速度,以及增加新子弹的时间间隔。
weapon类提供外界借口:开枪(发射子弹)。
四、人物类调用weap类的开枪接口。
OK,简单的整理了下(其实也挺简单的,是吧)。下面开始重要的实现,子弹的实现:
子弹bullet类的职能很单一,只负责创建一个新子弹、子弹的移动和子弹的消失、碰撞。
直接上代码吧: