gpt4 book ai didi

box2d,不能互相插入的动态物体

转载 作者:行者123 更新时间:2023-12-04 17:24:20 25 4
gpt4 key购买 nike

我正在创建一个自上而下的基于 2d 瓷砖的游戏,并且在将 box2d 设置为以特定方式工作时遇到了一些麻烦。

基本上,我需要的是让所有 box2d 主体都遵循某些规则:
1)它们不重叠
2)他们不互相插入
3)他们仍然碰撞并提供碰撞联系人列表

我已将重力设置为 0,并且仅使用 setLinearVelocity 移动我的 body ,因为我需要它们以恒定速度移动,并且没有任何惯性效应。

看起来我需要一个静态的 body ,但可以手动移动。

我以为我可以使用运动体,但结果它们彼此重叠并且没有联系人列表。

有没有办法制作一个可以碰撞但不能相互插入的实体?

最佳答案

一种方法是为每个动态体创建一个运动体作为“阴影”体,使用完全相同的装置。在非常时间步之后,设置运动体的位置、角度、线速度和角速度,使其与被遮蔽的动力体的位置、角度、线速度和角速度相匹配。

原始动态夹具应设置为不与自己的阴影夹具碰撞,并且不与具有阴影主体的物体的原始夹具碰撞。

当两组像这样的物体碰撞时,它们的影子物体会阻止相对的动态物体插入它们,但它们仍然可以与世界上的其他装置正常碰撞。

请记住,Box2D 非常努力地复制我们在现实世界中看到的物理,而您在这里要求的根本不现实。您可能会看到一些非常奇怪的行为,尤其是当您尝试将这些尸体堆在一起时,即使它们遵循您的规则。但是,对于不需要堆积实体的自上而下的场景,这可能没问题。

关于box2d,不能互相插入的动态物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20932819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com