HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 不稳定b2RevoluteJoint Box2D大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的问题,请看视频: https://www.youtube.com/watch?v=UFXye1mMr04

当最大的身体推动我的绳子 – 它变得疯狂.我需要在我的游戏中使用mousejoint,用户可以抓住大对象并击中那根绳子.
如果我增加每个绳索元素的大小,我可以解决这个问题,但是我需要在游戏中使用更小尺寸的物体.我需要它们稳定.
我知道Box2d对于小尺寸物体的效果不是很好,但我在一些游戏中看到了细绳,一切都运行良好.
有人可以帮我解决我的问题吗?

解决方法

查看Box2D测试台中的RopeJoint.好的,这是另一个提示.启用“关节”显示.看看它是如何不仅仅是一堆旋转关节.

好的,好的,我会解释一下.

旋转关节的设计并不是拉伸处理的最佳选择.你可以看到当你用巨大的盒子打扰绳子时,绳子的前几个链接就像他们试图纠正自己一样疯狂.他们以这种方式处于困境中,因为正在应用巨大的力量和扭矩,我猜测出错的细节很难预测,但基本上你已经为约束系统产生了病态.

发生的事情是,每个时间步计算的各个校正力太大,传播“信息”的效率低,“信息”包括“最后一个链接需要靠近绳索才能稳定”,因为就发动机而言关注的是,该信息每时间步通过一个链路传播(或者更准确地说,每个约束迭代一个链路,其中每个时间步执行一定数量的这些链路).

例如,Box2d如下:

>嗯,看起来像第一个旋转关节,绳子中的第一个环节(链接A)真的膨胀,所以我应该施加一个巨大的力量来卷起它
>现在链接A更接近了,好吧,嗯,看起来像绳子中的链接B现在也真的出了问题,我要施加一个很大的力量来连接A和链接C拉近它们来调整这种情况
>嗯,我现在必须再次调整链接A,但至少它比以前少了一点……哦,现在链接C也不合适了,让我应用一个相当大的力量(我们已知人类为在链接B上的错误方向….

……它一直在继续,当然实际上它比这更复杂,更可怕.但是你可以看到,当我们联系Z时,总的矫正力可能已经消散到可以忽略不计的程度.几乎就是在视频中看到的内容.当你强行违反像你这样的约束时,这就是天真解算器系统会发生的事情.

好吧那么解决方案是什么?

很容易解决的问题是在最后一个链接上放置一个最大距离(Box2d称之为绳索关节).事实上,在testbed应用程序中,它甚至实现了一个键绑定切换,让您可以使用J键切换该绳索关节,并将其关闭可以产生您演示的问题.

这种最大距离的绳索关节使得绳索在这种情况下表现得更好,因为它是一种约束,它明确地强制实际绳索的一个不变量,而不是分散保持绳索长度的工作尽可能多的不同约束因为有链接.

因此,它不允许您拉伸它.正如所展示的那样,你仍然可以用一个巨大的怪物箱暂时打扰它,但它会更容易反弹,因为它知道要防止另一端远离它应该永远无法前往的地方.

它肯定也有助于产生更多限制,例如中间链接不能超过绳索长度的一半,或者,拧紧它,只需在每个链接和绳索之间设置最大间距约束锚点,确保它的限制正好应该放置链接的位置,然后你可以用盒子疯狂,你会得到非常奇怪的东西.那里的权衡是你的总关节约束的两倍.

大佬总结

以上是大佬教程为你收集整理的ios – 不稳定b2RevoluteJoint Box2D全部内容,希望文章能够帮你解决ios – 不稳定b2RevoluteJoint Box2D所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: