问题标签 [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 投票
1 回答
35 浏览

objective-c - 我可以在单独的 .m 文件(字符)中设置 SKPhysicsJoint

我对 SpriteKit 和一般编码都很陌生。我正在尝试在我的角色 .m 文件中设置一个 SKPhysicsJoint。但是,我不能使用physicsWorld 语法,因为它不是场景。

我将如何解决这个问题?

我有一个父节点,里面有两个孩子,一个小圆形精灵,物理体大小相同。我想添加第二个圆形physicsBody 两倍的半径具有相同的中心点。这样我就可以处理不同距离的碰撞。

我尝试在我的角色 .h 文件中定义 SKPhysicsJoint 并在场景文件中使用physicsWorld,但这不起作用。

我正在以正确的方式解决这个问题,或者是一个我忽略的更简单的解决方案。

0 投票
0 回答
303 浏览

ios - Swift Physicsbody 固定并加入未按预期工作

我正在尝试用SKSpriteNode. 物理和一切都很好,除了一件小事:当我的车从更远的距离降落在地面上时,车体被推下然后回到原位。

见图片: 落地后片刻的样子

我想得到左边的图像,但我得到了右边的那个。

当它降落在地面上时,我不希望身体进入轮子,我希望它相对于轮子处于固定位置,反之亦然。

所以这是我的做法:

这是在汽车类中:

这是在 GameScene 类中:

我尝试使用SKPhysicsJointFixed,但这也不起作用。

有任何想法吗?

编辑:这就是physicsBody的定义方式:

这是汽车类中的车身。
汽车类是SKSpriteNode汽车本身的主体,轮子是它的孩子。

这是同一级别的轮体:

EDIT2:添加视频 https://www.youtube.com/watch?v=TTwa-t4u4pI

0 投票
1 回答
71 浏览

sprite-kit - didBeginContact 输入太早

当它们在接触点发生碰撞时,我试图将球粘在旋转器上。但是,似乎在联系开始之前就调用了 didBeginContact。下图显示它们一起旋转,但空间很大。

在此处输入图像描述

代码如下:

如果我注释掉 do begin contact 方法,您可以看到图像大小正确,因为当它们碰撞时它们完美地相互贴靠。

在此处输入图像描述

当我注释掉 didEnterContact 方法时,为什么contact.contactPoint 与两个身体碰撞的点不同?知道如何解决吗?

0 投票
2 回答
538 浏览

sprite-kit - 移动附加对象时 SpriteKit 引脚关节拉伸

我有一条使用 SKPhysicsJointPin 创建的绳索。绳子的两端是两个不同的 Sprite/PhysicsBodies,它们连接在一起。

如果我用 SKAction 移动其中一个附加的 Sprite,绳子往往会拉开,然后在一段时间后最终稳定下来。

可以在此处找到与我尝试实现的示例项目类似的示例项目,绳子 Git 项目

如果将移动操作添加到分支,您将看到类似于下面发布的 gif 的结果。

有什么方法可以防止关节分离?

在此先感谢,本

拉伸绳

0 投票
1 回答
213 浏览

sprite-kit - Swift SpriteKit - “尝试添加一个已经有父节点的 SKNode”,同时添加 Joint

我在躺下并从背部手术中恢复时正在学习 SpriteKit。感谢您帮助我理解为什么会出现此错误。

我有一个精灵“zombie1”,我可以通过计时器调用它,它会一遍又一遍地生成,然后在屏幕上毫无问题地移动,直到我尝试添加 riotShield Sprite。一旦我这样做了,它会在第二次调用 func 并且第一个 riotShield 已经存在时崩溃:

我不明白的是,我的zombie1 怎么会创建一个 SKSpritenode 的实例,但我的 riotShield 却被视为试图添加到同一个父级的单个精灵。我已经阅读了大量有关此错误的帖子,并且我想我了解原因(riotShield 未作为实例添加)。我只是不明白这两个精灵之间的区别以及当我以基本相同的方式添加它们时它们的行为不同。

感谢您的时间和您可能提供的任何帮助。

0 投票
1 回答
811 浏览

sprite-kit - 固定的子节点不随父节点移动

我发现了这个问题,这听起来类似于StackOverflow_24965533但接受的答案在 9.3 中不起作用。

我所看到的示例: 此处链接到图像

我的代码:

英雄测试 UI 只是灰色圆圈,当他被推动时,我希望子节点“topMacheteSwing”与他一起移动。我认为将它们固定在一起可以做到这一点,但事实并非如此。

非常感谢您的帮助。

0 投票
1 回答
704 浏览

ios - SpriteKit 为每个节点添加一个弹簧关节

我正在使用 SpriteKit 为项目创建一个有趣的 Hotspot UI。应该很简单!只是一个背景图像,上面有很多点。当您点击一个点时,它会放大。当您再次点击时,它会恢复到正常大小和位置。但是,更重要的是,每个点都有物理特性,所以当它放大时,其他点会暂时移到一边。当点恢复到正常比例时,它们会弹回原位。

为了实现这一点,我在页面上放置了一堆 SKShapeNodes。我还在创建一个附加到场景physicsBody 和SKShapeNode 的SKPhysicsJointSpring。

这是场景的代码:

DotNode 是 SKShapeNode 子类。这是它在屏幕上的样子:

节点静态

这就是他们扩大规模时的样子:

在此处输入图像描述

看到问题了吗?他们现在不互相交流了。当我拖动其中一个时,我可以看到弹簧接头已连接:

在此处输入图像描述

对象不再相互交互有什么原因吗?

如果您只是移除关节,就会发生这种情况:

在此处输入图像描述

物体相互推动。这必须是可以实现的。我究竟做错了什么?

0 投票
1 回答
146 浏览

sprite-kit - SpriteKit如何添加一个fixedJoint?

我正在尝试将两个节点与一个固定的 SKPhysicsJoint 绑定在一起我想出了这个代码:

问题来了:

它给了我这个错误:

任何帮助表示赞赏。

0 投票
0 回答
308 浏览

sprite-kit - SpriteKit 蛇 - 关节和物理

我正在开发我的游戏 - iOS 版 Snake。

我的开发已经过了这个阶段,但是我想对它做一些改进。经过几次尝试和错误,我完全忽略了 SpriteKit 提供的物理/运动和碰撞检测,我继续使用自己的实现。也许在你的帮助下,我可以重构游戏的这一部分。

我的蛇可以向所有可能的方向(360 度)转动。没有重力。如果您希望与现有 SpriteKit 实现的代码一样多,您将如何设置您的物理实体?

我认为有两个重要的部分。

首先 - 关节。蛇由多个实体构成。所有的身体都只是相互跟随——经历了头部前段时间的所有点。我认为最好的接头是销接头?我在相邻物体之间使用了带有锚点的 Pin 接头。但是这种设置导致蛇身体的其余部分改变了头部的物理特性。不应该是这样的。我尝试将重量更改为零,将线性和角度倾倒最大化。结果永远无法接受。

第二 - 控制运动。蛇的运动是恒定的。用户通过按下左右按钮开始向右或向左轻轻移动蛇。你认为我应该在更新方法中每次将蛇的速度重置为我的恒定值吗?还是我应该玩力脉冲和扭矩?仅当用户持续按下屏幕时才会发生转向 - 反转蛇需要几秒钟(如“掉头”) - 旋转它怎么样?

任何建议表示赞赏。此致。

0 投票
1 回答
104 浏览

ios - 触摸时添加和删除 SKPhysicsJointPin 的令人困惑的问题

我在 touchesBegan 函数中添加和删除我的 SKPhysicsJointPin 时遇到问题。问题是我的关节是在 didMoveToView 函数中声明的,因为它需要根据其中存在的表达式进行定位。

既然如此,我就不能在 touchesBegan 函数中引用 SKPhysicsJoint ,这对于我试图用我的项目做的事情是必要的。有什么解决方案或建议吗?

代码: