【问题标题】:I want to collition with an attack of sword or club of enemy我想与敌人的剑或棍棒的攻击相撞
【发布时间】:2018-01-21 08:31:37
【问题描述】:

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

我现在正在制作一个玩家与敌人的攻击相撞。

敌人的攻击是剑或棍棒,所以我想在玩家接触到敌人的剑(或棍棒)的边缘时进行碰撞。

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

你是怎么搞这种碰撞的?

【问题讨论】:

    标签: cocos2d-x box2d


    【解决方案1】:

    我相信您想要的不是边界框,而是身体、固定装置和形状的集合,以对敌人和玩家之间的交互进行足够逼真的模拟。

    为此,您需要将粉红色的线条形状(敌人及其武器)划分为一组凸多边形——就像您需要为玩家做的那样。

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

    总是可以将一个凹多边形分割成一组凸多边形。

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

    一方面,您似乎无论如何都需要手动对事物进行分区,以便将理想情况下不可变的部分彼此分开。狼牙棒(或球杆)、前臂、上臂等部件,其中金属、木材或骨头等结构使部件足够坚硬,可以实现您想要实现的模拟细节。

    然后,您需要再次对这些刚性部件进行分区,以匹配您想要的模拟的详细程度。因此,狼牙棒的头部可以用接近五边形的多边形来表示。狼牙棒的轴,由一个矩形多边形组成。将这两个凸形连接到权杖的单个主体上。以此类推。

    如果您愿意,您可以使用算法(或使用这些算法的实现)来计算构成凹面部分的凸多边形集。但是,除非您要对任意形状执行此操作,否则我不确定它是否值得。

    【讨论】:

    • 感谢您的回答,您的解释通俗易懂!我需要在武器上有一个多边形才能相互碰撞。我尝试使用 box2d 的夹具来表示这一点。
    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多