问题标签 [skphysicsbody]

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 投票
3 回答
1997 浏览

sprite-kit - 翻转的 x 比例打破了碰撞处理 (SpriteKit 7.1)

我使用 SKNode 的 xScale 属性水平翻转我的精灵。现在,在将 iOS 更新到 7.1 版后,水平翻转会导致我的对象沉入地下。(见下面的动画)。该问题仅出现在 xScale 属性中。垂直翻转工作正常。

x-scale 翻转问题

0 投票
0 回答
157 浏览

ios - SKPhysicsContact 崩溃 - 访问错误

好的,所以我很困惑。我将我的视图控制器设置为物理世界的代表。当我的 Flappy Bird 与硬币碰撞时,此方法将运行:

所以这对我来说没有意义,因为有时当我的鸟接触硬币时我会收到一个 badaccess 呼叫,但就像 95% 的时间一样,它按预期工作。从场景中删除硬币的唯一时间是当鸟接触硬币时,或者当 coin.position.x < (0.5 * coin.size.width);

不知道为什么我的访问权限不好,特别是因为我写了 if (contact != nil && contact.bodyA != nil)。另外,为什么当有代表喊‘嘿!用这个 SKPhysicsContact' 运行这个方法?

任何人的帮助?

0 投票
1 回答
400 浏览

sprite-kit - 将关节​​添加到 Sprite Kit 中的 SKPhysicsWorld 后无法更改 SKPhysicsJointLimit maxLength

因此,我创建了一个 SKSpriteNode 环,它们本质上是使用销接头连接在一起的矩形。我想将此环悬挂在 SKShapeNode 圆圈内。我已经使用 SKPhysicsJointLimit 将每个节点连接到 SKShapeNode。

这一切都很好,如果我将 maxLength 设置为我主观确定的“正确”数字,我就会得到我正在寻找的效果。

我已经将所有的限制关节存储在一个数组中,这样我就可以轻松访问,并且我已经将它们添加到了物理世界中。

所有这些都按预期正常工作,尽管需要一些工作才能使代码正确。这些东西很挑剔!

现在,我真正想做的是将 maxLength 设置为某个较大的数字,然后随着时间的推移逐渐减少该数字,以便戒指从“松散悬挂”变为“拉紧”

我尝试了多种方法——似乎都没有。首先,我试过:

但这根本没有做任何事情。

我终于意识到,在将关节添加到物理世界后,您似乎无法更改关节的属性。所以,我在场景的更新方法中尝试了这样的事情:

但是,这也不起作用。它抛出了错误:

即使我已经清楚地删除了它。所以,我真的不知道从这里去哪里。互联网上关于关节的文档和现有材料非常薄。我想接下来我会尝试移除所有关节并添加它们,但这将是一个巨大的痛苦。

任何想法都会非常有帮助!

0 投票
1 回答
137 浏览

ios - SpriteKit 物理身体效果丢失

首先我添加了

看物理体电路。

我有一个失去物理效果 O_o 的问题...我有一个受重力影响并掉下来的球。

我还创建了底部边缘的物理身体来获取碰撞消息:

在我将 bitMask 添加到底部边缘之前,它正确地相互交互

面具:

它停止了工作。嗯……

我注释掉了将掩码分配给底部边缘 - 它有效。然后我分配给底部边缘另一个 - 球面罩 - 它不再起作用。

我想,我在文档中遗漏了一些东西,但现在我找不到它为什么会发生的答案。

在此处输入图像描述

0 投票
1 回答
268 浏览

objective-c - SKPhysicsJoints 都相当不稳定且富有弹性

所以,我有一个由几个物理体组成的物体,有 10 个左右的关节将它固定在一起(销钉和固定)。它运作良好,但我对关节的摇晃程度感到惊讶。我认为“固定”就像我将它们合并到一个物理体中一样固定,但它基本上摇摇晃晃以至于无法使用。同样使用针脚,当对连接对象施加力时,每个物理体上的点似乎彼此之间存在相当大的差异。情况一直如此,所涉及的两个物体的运动都不受任何限制。

我希望关节更坚硬,弹性更小。有没有人能够找到解决方案或原因?添加更多的关节似乎并没有使它变得更加僵硬。

0 投票
3 回答
326 浏览

objective-c - Sprite Kit 成长物理身体

我正在尝试模拟一个缓慢的爆炸,所以我希望某些东西的命中框增长。

有没有办法将碰撞箱增加到设定值,还是我必须手动调整物理体的大小?

目前我这样设置hitbox的大小:

但我希望物理体在固定的时间间隔内(即 1 秒)从无到有成长。

0 投票
2 回答
1107 浏览

sprite-kit - Sprite Kit 不同部分的不同重力

我正在构建一个轻飘飘的小鸟游戏,其中一半水平面高于水面,另一半水平面低于水面。

如果您的鸟在空中,则有规律的重力,当您轻敲时,会施加一个直升的冲动。

如果你的鸟在水中,重力应该在负方向(上升)并且更小。当您点击时,会施加一个直接向下的脉冲。

我可以在不同的地方设置场景的重力吗?

如果鸟在水中,我想使用计时器来施加负力,但它到处都是。

另外,我不能只改变整个场景的重力,因为场景中还有其他 SKSprite 对象应该对它们施加不同的重力(例如,空中的一只鸟在敲击时应该拍打,而一只鸟会潜入同时敲击时,水应该往下游)。

0 投票
2 回答
244 浏览

ios - SKPhysics车身碰撞检测在一侧

是否可以检测节点是否仅在一侧与另一侧发生碰撞?

例如,一只动物与另一只动物奔跑。在这种情况下,碰撞检测方法被调用。但是当动物跳过动物并在其上“行走”时,碰撞检测不会被激活。

我会很感激每一个答案。谢谢

我的代码:

0 投票
0 回答
551 浏览

ios - Sprite Kit:带 SKPhysicsJointLimit 的绳索在过度用力下断裂?

以下代码效果很好。它创建了一根由方形链节制成的悬挂绳索,然后对底部链节施加力使其摆动。它在创建 SKScene 时在 SKScene 对象中执行。

但是,如果您将最后一行的力从 2000 更改为 4000,物理就会失控,链接有时会断开。有时链接似乎在振动,或者它们会完全屈服于重力,就好像没有关节一样。此外,如果您有其他物理实体,它们将不再与铁丝链发生碰撞,即使它们在施加力之前发生了碰撞。

尽管 4000 似乎过多,但我遇到过这个问题,对较轻的物体施加的力要小得多,或者对绳索施加的力较小,链接之间的间隙较小。

难道我做错了什么?Sprite Kit 中是否存在错误或其他解释?我在网上找不到任何答案。

无论是在创建 SKScene 期间施加力还是延迟到稍后再施加力也无关紧要。

0 投票
1 回答
289 浏览

ios - 将 iOS 更新到 7.1 后 Sprite-kit 游戏崩溃

我正在和一些朋友一起开发一个游戏项目。

我们开始使用 Xcode 5 for iOS 7.0 制作它。

游戏从第一次触球开始。我们的角色从天而降,你可以开始和他一起跳跃。

一切正常,直到我的朋友将项目压缩并发送给我。我打开它,并尝试在模拟器上运行。所有的场景都是在我朋友的机器上创建的,但是我点击了。游戏崩溃。

我得到的错误信息是:

断言失败:(面积 > 1.19209290e-7F),函数 ComputeMass,文件 /SourceCache/PhysicsKit_Sim/PhysicsKit-6.5.4/PhysicsKit/Box2D/Collision/Shapes/b2PolygonShape.cpp,第 395 行。

所以,我看了看有什么不同,并意识到我在 iOS 7.1 上运行它,将其更改为 7.0,一切又正常了。

但是,现在我有一个无法在 7.1 上玩的游戏。我刚刚开始学习 sprite-kit,所以......我不知道我能做些什么来改变它。

在主线程中,[PKPhysicsBody setDynamic:]:

编辑:

因此,通过@LearnCocos2D 对该区域的评论,我再次查看了我的代码。

当我初始化我的角色时,我使用:

水平翻转我的角色精灵。

我把它取下来,我的代码现在可以工作了。

我假设翻转精灵的负数导致与质量计算发生冲突。

我的解决方法:用 Photoshop 翻转并保存另一张图像。