读书人

如何在3D游戏里编写炸弹道具来使其在碰

发布时间: 2012-10-26 10:30:59 作者: rapoo

怎么在3D游戏里编写炸弹道具来使其在碰到移动物体后在这物体周围区域爆炸,此区域的物体全部消除!!
求大神回复啊,我刚学游戏菜鸟啊,比如说塔防游戏把,一个炮把一波移动的兵炸飞这样的原理是什么啊,谢谢啊!!

[解决办法]
这是一个标准的collision detection(cd)问题。有很多做法可以实现,元素包括:

碰撞包围体:圆形、方形、立方体、球体等

蛮力方法 - 计算炮弹坐标,然后迭代兵的数组,取出每一个兵的坐标,然后和炮弹的坐标一起根据碰撞包围体计算距离,小于一个阈值的就算打中。

蛮力方法是一个基本方法,剩下的方法或者概念都是在这个基础上进行优化,比如:

1 分区 - 把地图分成MxN个区域,判断炮弹在哪个区域,然后找到周围受影响的区域,把这些区域中的兵的坐标提出来用蛮力方法计算距离。这实际上是一种分区优化——很大的一个主题,包括

rectangle cell
isometric cell
hexagon cell

2 基于场景管理的CD:quadtree, octree, bsp等等

3 基于对象类型的CD:object-object object-world

4 特殊优化方法:RDC、Ray等等

这个主题很大,但简单到复杂办法很多。
[解决办法]
http://blog.csdn.net/pizi0475

读书人网 >C++

热点推荐