我想与敌人的剑或棍棒的攻击相撞
I want to collition with an attack of sword or club of enemy
我正在使用 cocos2dx 和 box2d 制作一个 2D 平台游戏。
我现在正在制作玩家与敌人攻击的碰撞。
敌人的攻击是剑或棍子,所以我想在玩家接触到敌人的剑(或棍子)的边缘时进行碰撞。
到目前为止,我使用 box2d 制作了玩家与子弹的碰撞,但我不知道如何将边界框制作到敌人的剑(或棍棒)的边缘,如下图所示。
你是怎么弄成这样的碰撞的?
我相信您想要的不是边界框,而是 collection 物体、固定装置和形状,以足够逼真地模拟敌人和玩家之间的交互。
为此,您需要将粉红色线条形状(敌人及其武器)划分为一组凸多边形 - 就像您需要为玩家做的那样。
注意,从数学上讲,任何凹形都可以表示为凸多边形的组合。来自 Wikipedia's entry for Concave polygon:
It is always possible to partition a concave polygon into a set of convex polygons.
如果您需要处理的实体很少,我会手动进行分区。
一方面,看起来您无论如何都需要手动对事物进行分区,以便将理想的不可变部分彼此分区。诸如狼牙棒(或棍棒)、前臂、上臂等零件,其中金属、木材或骨头等结构使零件足够坚固,可以实现您想要实现的模拟细节。
然后您需要再次分割这些刚性部件以匹配您想要的模拟的详细程度。因此,狼牙棒的头部可能会使用接近五边形的多边形来表示。狼牙棒的杆身,正好是一个长方形多边形。将这两个凸形附加到单个 body 上作为狼牙棒。等等。
如果愿意,您可以使用算法(或使用这些算法的实现)来计算构成凹面部分的凸多边形集。但是,除非您要对任意形状执行此操作,否则我不确定它是否值得。
我正在使用 cocos2dx 和 box2d 制作一个 2D 平台游戏。
我现在正在制作玩家与敌人攻击的碰撞。
敌人的攻击是剑或棍子,所以我想在玩家接触到敌人的剑(或棍子)的边缘时进行碰撞。
到目前为止,我使用 box2d 制作了玩家与子弹的碰撞,但我不知道如何将边界框制作到敌人的剑(或棍棒)的边缘,如下图所示。
你是怎么弄成这样的碰撞的?
我相信您想要的不是边界框,而是 collection 物体、固定装置和形状,以足够逼真地模拟敌人和玩家之间的交互。
为此,您需要将粉红色线条形状(敌人及其武器)划分为一组凸多边形 - 就像您需要为玩家做的那样。
注意,从数学上讲,任何凹形都可以表示为凸多边形的组合。来自 Wikipedia's entry for Concave polygon:
It is always possible to partition a concave polygon into a set of convex polygons.
如果您需要处理的实体很少,我会手动进行分区。
一方面,看起来您无论如何都需要手动对事物进行分区,以便将理想的不可变部分彼此分区。诸如狼牙棒(或棍棒)、前臂、上臂等零件,其中金属、木材或骨头等结构使零件足够坚固,可以实现您想要实现的模拟细节。
然后您需要再次分割这些刚性部件以匹配您想要的模拟的详细程度。因此,狼牙棒的头部可能会使用接近五边形的多边形来表示。狼牙棒的杆身,正好是一个长方形多边形。将这两个凸形附加到单个 body 上作为狼牙棒。等等。
如果愿意,您可以使用算法(或使用这些算法的实现)来计算构成凹面部分的凸多边形集。但是,除非您要对任意形状执行此操作,否则我不确定它是否值得。