physics-engine相关内容

如何在box2d中停止作用在身体上的力

我在 iphone 上使用 box2d 来创建游戏.我有一个受重力影响的身体向下移动而不是向右或向左移动.它会被另一个物体击中,然后向右或向左移动.然后我有一个重置按钮,可以将身体移回起点.唯一的问题是它仍在向右或向左移动.我怎样才能抵消球已经在移动的力?重置游戏时如何消除这种左右移动? 解决方案 Box2d 自动清除每个模拟步骤的力.我认为你只是在重置时改变了身体的位置,而不是它的速度. ..
发布时间:2022-01-21 17:41:31 移动开发

使用box2d时速度有上限吗?

我正在使用 box2d 进行物理模拟.我正在使用箭头键移动一个圆圈,只要按下一个键就会在身体上施加脉冲.不幸的是,这个圆圈移动得非常缓慢,而且似乎没有像真正的身体那样加速.我的世界尺寸是 400x800 像素.圆体的半径为 20f. 根据this,可以通过缩小圆半径来解决问题在绘制过程中获取身体位置后创建它并放大时.它似乎根本没有任何区别.我在这里缺少一些步骤或设置吗? pastebi ..
发布时间:2022-01-12 16:43:40 其他开发

SceneKit SCNPhysicsBody 得到休息通知

SceneKit当 dynamicBody 处于静止状态时,有没有办法得到通知?当 dynamicBody 落到地面并完全停止移动时,我想删除它 - 我认为我会有相当多的那些,所以我想使用基于事件的东西而不是遍历所有body 并检查它们的速度? 解决方案 您可以对 isResting 属性使用键值观察.请参阅 Swift 中是否提供键值观察 (KVO)?. 或者您可以使用 SCNPh ..
发布时间:2021-07-16 19:03:24 其他开发

数值积分:为什么我的轨道模拟会产生错误的结果?

我阅读了费曼物理讲座第 9 章,并尝试了我自己的模拟.我使用黎曼积分来计算速度和位置.虽然所有的起点都一样,但我的轨道看起来像双曲线.这是讲义:https://www.feynmanlectures.caltech.edu/I_09.html(表 9.2) 导入时间导入 matplotlib.pyplot 作为 pltx=列表()y=列表()x_in=0.5y_in=0.0x.append(x_ ..
发布时间:2021-06-10 19:24:38 Python

生成网格并细化三角形的网格

我需要找到一种方法来对三角形进行网格划分,然后使用“细化"进行细化.我原始三角形的顶点存储在大小为nb_points * 2的矩阵内.我的人脸存储在 nb_faces * 3 矩阵中.每个面部的数据存储在nb_face * 1矩阵中.网格划分是通过使用三角形线段的中间对区域进行潜水来完成的. 示例:来源: vertices = [0 1;2 3;4 1;4 5];面孔= [1 2 3;2 ..
发布时间:2021-05-31 20:47:27 其他开发

(用于Sugar,Sugar等游戏的物理引擎)针对许多物理精灵的SpriteKit性能优化

我是iOS游戏开发者,我看到了一个有趣的物理&最近绘制游戏“糖,糖".在游戏中,屏幕产生了很多像素粒子(成千上万个像素粒子),这些像素粒子可以自由落到地面上.播放器可以绘制任何形状的线条,从而可以将这些粒子引导到某些杯子中.来自Google的图片: 我正在尝试将SpriteKit与Swift配合使用,以达到类似的效果.这是我得到的: 然后我遇到了性能问题.一旦粒子数量>100.CPU和能源成本非常 ..

是什么导致物理引擎的关节撕裂?

我将简短地介绍一下,知道我在说什么发生在2009年针对AS3的Box2d上,而今天也发生在JavaScript中完全独立的p2物理库中. 请转到下面的2d布娃娃演示页面,并用力旋转布娃娃头部. https://schteppe.github.io/p2.js/demos/ragdoll.html 您将看到关节分离并变成弹性的结果. 这个问题使我无法通过物理使一切变得有趣.球 ..
发布时间:2020-11-12 19:26:16 其他开发

2D物理引擎:具有非弹性碰撞的弹跳球不会停止

我用Java创建了一个简单的2D物理引擎,该引擎使用圆形弹丸和直壁。目前,每一帧,每个弹丸的位置都会以速度*(1 / fps)前进。之后,每帧一次更新速度。碰撞检测使用先前位置和当前位置定义点斜率形式的直线,检查该直线是否与墙相交,并且如果该交点位于先前位置和当前位置之间,则记录碰撞以及弹丸的当前位置和速度会相应更新。 现在,除了非弹性碰撞以外,所有这些都有效。目前,非弹性碰撞会将弹丸速度( ..
发布时间:2020-10-05 19:03:39 其他开发

Matter.js:在画布上放置文本或图像

我想在画布上放置字体或静态图像,但不确定使用Matter.js的最佳方法。现在,对于图像,我只是创建一个大小为“ 0”的主体,并将图像网址放入render.sprite.texture属性中。似乎可以解决问题,但是在画布上放置静态图像有其他/更好的方法吗? 此外,我正在使用“ afterRender”将文本放置在画布上在创建或绘制其他任何内容之前,在脚本顶部附近发生以下事件: _sc ..
发布时间:2020-09-29 02:28:57 前端开发

将两个box2D实体牢固地固定在一起

我正在尝试将两个box2d实体连接在一起,它们在固定距离上分开。两个实体都不能旋转,而连接也必须旋转。物体之间的空隙需要允许其他物体通过。 我目前有一个b2revoluteJoint设置,如下所示: b2RevoluteJointDef rjd; rjd.lowerAngle = 0.0f; rjd.upperAngle = 0.0f; rjd.Initialize(bo ..
发布时间:2020-09-23 01:53:19 其他开发

运行模拟后,机器人模型掉落在地板上

我从ROS中的URDF导入了webots仿真中的模型.该机器人是带有3个脚轮的三轮车驱动器.我遵循了webots样式指南中的车轮样式,并进行了相应的更改. 我的问题是,当我运行模拟时,机器人的车轮掉落在地板上并且无法移动.只是底盘在地板上,车轮垂下. 解决方案 您的机器人可能太笨重,无法进行物理配置. 您可以通过更改WorldInfo节点的字段值来解决此问题( https://www ..
发布时间:2020-07-14 02:55:24 其他开发

澄清使用Update()和FixedUpdate()吗? Unity2D

因此,我了解到FixedUpdate应该用于物理操作等,但是我在理解什么才是物理方面遇到了麻烦.因此,例如,我通过查看按下了哪些键来移动角色,然后施加力.目前,我正在Update()中执行此操作.该功能是否应该移至FixedUpdate(),因为addForce是要应用于物理对象(播放器,因为它具有刚体组件)的代码? 但是,如果我确实将此代码移至fixedUpdate(),则可以在该方法中运 ..
发布时间:2020-07-13 01:16:28 C#/.NET

C ++运算符/简单数学的速度

我正在研究物理引擎,并认为它将有助于更好地了解执行许多简单或复杂的数学运算的速度和性能效果. 物理引擎的很大一部分正在淘汰不必要的计算,但是在什么时候计算足够小以至于不需要进行比较检查? 例如:测试两个线段是否相交.在直接进行简单数学运算之前是否应该检查它们是否彼此靠近,否则从长远来看,额外的操作会减慢该过程吗? 不同的数学计算需要花费多少时间 例如:(3 + 8)vs(5 ..

使用box2d时速度是否有上限?

我正在使用box2d进行物理模拟.每当按下键时,都会在身体上施加脉冲,从而使用箭头键移动圆圈.不幸的是,圆环的移动速度极慢,似乎并没有像真实的身体那样加速. 我的世界尺寸为400x800像素.圆体的半径为20f. 根据此,可以通过减小圆半径来解决问题创建它并在绘画过程中获得身体位置后按比例放大.它似乎根本没有任何区别.有什么步骤或设置我在这里不见了吗? pastebin上的代码 ..
发布时间:2020-04-30 10:18:16 其他开发

如何处理多个同时发生的弹性碰撞?

我正在使用基本维基百科上的方程式.但是,当存在依赖关系时,例如两个对象同时击中另一个对象: 就像这里,对象1和2恰好同时击中3时,成对方法失败.根据我计算碰撞的顺序(首先是1-3或首先是2-3),我将获得不同的结果.在碰撞中重复进行迭代仍会给出与顺序有关的结果. 我已经设置好它,所以我可以弄清楚哪些对象相互接触,因此我的代码将在计算这些对中的一个时知道对象3正在与另一个对象碰撞(因此1 ..

Slick2D和JBox2D。如何绘制

在问这个之前我做了很多网上搜索。我不能这样做。这对我来说有点难以理解。那么我如何在与世界位置的身体相对应的右侧屏幕位置绘制图像? Thanx。 如果有人在同一个障碍面前发现了他,我发布了一个HOW TO,而不是normalocity的正确解释。你可以在这里找到它: http://romeo.akademx.ro/ 2012/04/06 / slick-and-box2d / 这是渲染功 ..
发布时间:2018-11-28 21:05:27 Java开发

凸多面体的质心

我有一个封闭的凸多面体,它由三维空间中由顶点数组定义的凸多边形(面)阵列定义。假设密度均匀,我试图找出多面体的质心。现在我用这个伪代码中的算法计算它。 public Vector3 getCentroid(){ Vector3质心=(0,0,0); (face in face){ Vector3 point = face.centroid; point.multiply(face ..
发布时间:2018-04-23 17:53:21 Java开发

如何阻止在box2d中作用在身体上的力

我在iphone上使用box2d来创建游戏。我有一个身体受重力影响向下移动,不向右或向左。它会被另一个身体撞击,然后会向右或向左移动。然后我有一个复位按钮,将身体移回到其起始点。唯一的问题是它仍然向右或向左移动。我如何抵消球已经移动的力量? 解决方案 box2d自动清除每个模拟步骤的力量。我认为你只是改变你身体的位置,当复位,但不是它的速度。将此代码添加到您的重置方法中: body ..
发布时间:2016-12-11 21:18:56 移动开发