问题标签 [skphysicsjoint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
791 浏览

ios - Swift 中的 SKPhysicsJointSpring 频率和阻尼

dampinga和frequency的属性有什么区别SKPhysicsJointSpring

我的代码是

应该在什么数值范围内,才能frequency自然而然damping采取spring行动?

0 投票
2 回答
7650 浏览

swift - 如何使用 SKPhysicsJointPin 连接两个 SKSpriteNode - swift

我正在尝试在下面的屏幕截图中SKSpriteNode使用标记为绿点的SKPhysicsJointPinat连接两个 。anchorPoint后来我想physicsBody!.dynamic = true在object2上启用以获取object2的“摆动动画”。

在此处输入图像描述

在此处输入图像描述

我一开始在创建时遇到困难,SKPhysicsJointPin即使我在 Xcode 中没有遇到错误,它也无法编译。

这是代码:

我得到的 Xcode 错误是 在此处输入图像描述

请告知我的代码有什么问题。谢谢你。

0 投票
1 回答
175 浏览

objective-c - 如何执行钟摆路径

好的,所以我有一个精灵,我在它上面有一个平台。精灵从点 (0,scene.frame.size.height/2) 开始,平台从 (scene.frame.size.width/2,scene.frame.size.height-10) 开始。所以精灵在左边,平台在屏幕的顶部居中。

我将在精灵上施加一个强大的脉冲。冲动的向量将有一个 X 但没有 Y。基本上我要把它扔对了。

它应该在平台下方,它会。我想要它做的是沿着以平台中心为支点的钟摆路径。更重要的是,我想强行这条道路。无论物体 x 动量如何,我都希望它必须沿着钟摆路径摆动,而不是直接从它下面穿过

如果它有助于描绘从藤蔓上摆动的画面。我希望它在抓住藤蔓之前考虑精灵的速度,但与现实世界不同,我希望它通过钟摆状的路径迫使精灵以一个角度下降并返回一个角度。

我很难弄清楚如何去做这样的事情,所以任何帮助都将不胜感激。我知道我可能需要一个关节来连接两者,如果我担心的都是 Y 动量,我可能只用一个极限关节就可以逃脱,但它是强制钟摆路径并转换动量部分我被困住了。

预先感谢您的所有帮助。

0 投票
1 回答
104 浏览

objective-c - 如何制作延长链

好的,我现在在 stackoverflow 周围有几个问题,其中大部分都与这个问题有关。我一直试图自己得到它,我有几次,但结果从来都不是我所期望的。我正在尝试开发一个我的精灵可以抛出的链。

到目前为止,我所做的是将钩子的引线从精灵的中心向外抛出。一旦它从精灵位置移动 10 个像素,它就会在链中生成另一个链接。然后旋转链条以匹配引导链的旋转并使用连接销连接到它。它实际上工作得很好。唯一的问题是它仅在我将物理世界速度设置为 0.01 时才有效。如果我将它恢复到正常的物理状态,它会抛出链中的引导链接,但基本上会跳过其他所有内容。在此之前,我尝试在物理主体中包含前导链接并调用 didEndContact 来附加其他链接,但这几乎没有效果。

有人对我如何做到这一点有任何想法吗?我只需要链条从精灵位置延伸到最大长度,然后缩回。我没想到会这么难。提前感谢您的所有帮助,如果您希望我发布我的代码,我会很高兴,但考虑到我认为它不会起作用,我还没有添加它。再次非常感谢你,我已经为此绞尽脑汁好几个星期了,似乎我无处可去,尽管我学到了许多宝贵的概念,我非常感谢 stackoverflow 社区。

0 投票
1 回答
517 浏览

objective-c - Sprite Kit SKPhysicsJoint

我正在尝试使用 Sprite Kit 的联合系统。到目前为止,我什至连一根“绳子”/“绳子”都难以制作。最终目标是生产类似于篮球网的东西,其中将有 1 根左绳(垂直)、1 根右绳(垂直)和至少 2 根连接左右绳(水平)之间的绳 - 总共 4 根绳. 之后,弄清楚如何使 2 条水平绳索在穿过它们时不会与物体(炮弹?)发生碰撞。有谁知道如何做这样的事情?我已经尝试了 2 周,我的眼睛和手指都很痛。

0 投票
0 回答
319 浏览

sprite-kit - 在不使用 shouldEnableLimits 的情况下限制 SKPhysicsJointPin 物理体的 zRotation 范围

有人可以告诉我如何从起点开始限制 SKPhysicsJointPin 物理体对象的 zRotation“它的可旋转范围”。

我目前有一个问题,当我使用 shouldEnableLimits 时,当我的物理对象的旋转从 +270 度旋转到 -90 度(从正到负等)时,它会强制我的物理对象意外移动/出现故障,所以我需要使用另一种方法来实现这种限制旋转提供了lowerAngleLimit 和upperAngleLimit。

我有一个在屏幕上不断移动的实体,我使用:

左右旋转这个身体。当身体在移动时,我只需要身体在屏幕周围移动时只能以设定的量/“范围”旋转。

我不确定我是怎么走的“嘿,你的中心点在这里,你不能从你的中心旋转过去 -0.7(左)或 0.7(右)等”。

一个多星期以来一直在绞尽脑汁想如何做到这一点,任何帮助都会很棒

//////////// 如果我做一个测试用例会发生什么

//这是我的控制台输出

当前zrotation 2.949927

当前zrotation 3.002563

当前zrotation 3.033562

当前 zrotation 3.061646

请不要出错!

当前zrotation -1.500000

当前 zrotation 0.212812

当前 zrotation 1.947406

当前zrotation -0.485760

当前zrotation -2.326967

当前zrotation -2.381383

// 它出现了故障,我设置 -1.5 后的数字应该开始回到 -1.49,-1.48 回到 0。

//myobjectdegrees 是一个整数,根据我的 myobject.zRotation 从弧度转换为度数

我发现我愿意

//if (myobject.zRotation > 4.6) {

这种情况几乎不会触发。物体不断移动/旋转。

0 投票
0 回答
47 浏览

ios - Unarchiver Sprite Kit 的物理关节

我正在为基于 SpriteKit 的 iPad 编写一个小游戏。

我有一种包含气泡的瓶子和一个特殊的容器,其中包含与 SKPhysicsJointSpring 链接到气泡的节点。

然后我尝试使用保存和恢复整个场景

[NSKeyedArchiver archivedDataWithRootObject: self]

[NSKeyedUnarchiver unarchiveObjectWithData:archive]

解压完成后,起初气泡会出现在正确的位置,但随后它们会移动到一些奇怪的位置,就像被 SKPhysicsJointSpring 拖动一样。

持有者和其他节点都在正确的位置。

我是否正确使用 SKPhysicsJoints 进行保存/恢复操作?

0 投票
1 回答
871 浏览

ios - SKSpriteNode 子类:移除所有关节的方法

我创建了 SKSpriteNode 的子类。我将该类的实例与 SKPhysicsJointLimit 类型的关节连接在一起。我在我的 GameScene 中的 didEndContact(contact: SKPhysicsContact) 中执行此操作:

到目前为止,这运作良好。然后我到了我想从关节中释放节点的地步。根据 SKPhysicsBody 文档,有一个名为“joints”的属性,它是一个包含 SKPhysicsJoint 对象的数组。我认为这正是我所需要的,但我无法遍历实例的关节并将它们从物理世界中删除。为了完成这项工作,我在我的自定义 SKSpriteNode 子类中添加了一个方法。

在 println() 语句后调用该方法失败,并显示消息“Swift dynamic cast failed”。我非常感谢您对如何使用 SKPhysicsBody 的共同财产提出意见。更具体地说:如何使用(投射?)数组中的项目,以便能够从场景的 SKPhysicsWorld 中删除它们。

0 投票
1 回答
387 浏览

ios - SKPhysics关节针拉伸

我尝试了此处发布的解决方案,但没有解决问题。没有人回复我的请求,因为该问题已被标记为已回答。

我让玩家跳过屏幕抓住绳子。SKPhysicsJointPin通过在绳索段和玩家之间建立连接来实现抓取。绳索本身是由许多用 s 相互连接的线段组成SKPhysicsJointPin的。那些行为符合预期。然而,玩家似乎被连接了大约一秒钟,但是当玩家和绳索一起摆动时,他们之间的关节伸展并且玩家完全从屏幕上掉下来。

这是玩家(一只猴子)被添加到场景中的地方:

这里是一个联系人事件被整理的地方:

这是在玩家和绳索之间添加关节的地方:

有什么想法会导致SKPhysicsJointPin伸展吗?

0 投票
1 回答
115 浏览

ios - 用 Joint 扩展 SKShapeNodes

我有两个要相互连接的 SKShapeNode 节点。当我点击执行一个动作时,我希望两个节点扩大它们的高度,再次点击时我希望它们缩回。问题是两个节点没有按预期动画:

动画前:(未展开) 在此处输入图像描述

动画后:(展开) 在此处输入图像描述

两个节点都在扩展,但似乎一个正在另一个之下。我想要发生的是他们互相“推开”。