我想与敌人的剑或棍棒的攻击相撞

时间:2018-01-21 08:31:37

标签: cocos2d-x box2d

我正在使用cocos2dx和box2d制作2D平台游戏。

而我现在正在制造一名与敌人进行攻击的玩家。

敌人的攻击如剑或俱乐部,所以当玩家与敌人的剑(或俱乐部)的边缘接触时,我想要碰撞。

到目前为止,我使用box2d制作了一个与子弹相撞的玩家,但我不知道如何将边界框设置为敌人的剑(或俱乐部)边缘,如下图所示。

你是如何做出这样的碰撞?enter image description here

1 个答案:

答案 0 :(得分:0)

我相信你想要的不是一个边界框,而是一个身体,固定装置和形状的集合,以便对敌人和玩家相互作用进行逼真的模拟。

要做到这一点,你需要将粉红色衬里形状(敌人及其武器)划分为一组凸多边形 - 就像你需要为玩家做的那样。

注意,从数学上讲,任何凹形都可以表示为凸多边形的组合。来自Wikipedia's entry for Concave polygon

  

始终可以将凹多边形划分为一组凸多边形。

如果您需要处理的实体数量足够少,我只需手动进行分区。

首先,看起来你需要手动分区,只是为了将理想上不可变的部分相互分开。像狼牙棒(或棍棒),前臂,上臂等部件,其中金属,木头或骨骼等结构使得部件足够坚硬,可以实现您想要实现的模拟细节。

然后,您需要再次对这些刚性部件进行分区,以匹配所需模拟的细节级别。因此,狼牙棒的头部可能使用接近五边形多边形的东西来表示。钉锤的轴,只是一个矩形的多边形。将这两个凸形形状连接到单个体上以用于钉锤。等等。

如果您愿意,可以使用算法(或使用这些算法的实现)来计算构成凹部的凸多边形集。除非你打算为任意形状做这件事,否则我不确定它是否值得。