问题标签 [skphysicscontact]

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 回答
414 浏览

swift - Swift/SpriteKit - 碰撞和对象

我有一个名为 Item 的类,里面有一个名为 itemNode 的实例变量,它的类型为 SKSpriteNode。在我的 GameScene 类中,当我创建 Item 的一个实例时,我创建了一个物理体,它被赋予了 Item 的 itemNode。在我的碰撞检测系统中,当我的角色的物理体与 itemNode 的物理体发生碰撞时,我想在其节点的物理体刚刚碰撞的 Item 对象上执行一个函数。然而,碰撞系统只返回物理体。仅在给定节点的物理主体的情况下,如何访问 Item 对象?

0 投票
2 回答
133 浏览

sprite-kit - 覆盖 SpriteKit 中的碰撞

我想覆盖 SpriteKit 中的碰撞。

这个想法是我有一个在场景中弹跳的球。当 didBeginContact 检测到边缘和球之间的接触时,我希望球以随机的方向和速度反弹。

}

0 投票
1 回答
135 浏览

macos - didBeginContact 工作绝对不正确 swift

我有一个非常简单的用于 mac os 的 sprite kit 应用程序。(顺便说一句,此 iOS 代码工作正常)。AppDelegate 代码:

以及场景代码:

并且联系功能的工作方式非常奇怪。suric即使和之间没有实际接触,它也会运行monster。我不知道为什么会这样。这只是我的错还是只是 Xcode 错误?

0 投票
0 回答
83 浏览

swift - 为什么我的 SKShapeNode 会通过一个对象,事先短暂暂停?

下面的代码在平放在桌面上的设备上运行时会显示一个红色圆圈(“球”)和一条线。

当我轻轻地倾斜设备时,圆圈会朝这条线移动。当它到达线路时,它会停止,这是预期和期望的行为。

但如果我继续小费,圆圈就会穿过这条线。我已经尝试了 2 天来弄清楚为什么 grrr 我只想让圆圈打线而不是通过它。

有任何想法吗?这条线是“边缘”有什么关系?

干杯,安迪

0 投票
2 回答
782 浏览

sprite-kit - 如何将 SKPhysicsContact contactPoint 转换为我的 SKSpriteNode 位置

我在这上面花了太长时间。有人已经解决了这个问题,请帮助。

敌人向我的船开火。SKPhysicsContact 接手,我得到了contactPoint。我在世界坐标中的接触点引爆发射的导弹。都好。现在我想使用该点,而不是在contactPoint返回的场景坐标中,而是在我的船坐标中开始从我被击中的船上发射烟雾。我以前使用过 convertPoint 函数,成功了,但我似乎无法在这里得到它......文档说 contactPoint 用场景坐标表示,而 myShip 有它的坐标,作为世界节点的子节点,它是场景节点的子节点。它们位于相同的节点层次结构中。我想...我有一个场景->世界->相机,其中 myShip 是世界的一个孩子。我认为,我的代码是说将 contactPoint 从场景坐标转换为 myShip 中的坐标。但这不起作用。也没有任何其他组合。我错过了什么?我怀疑相机层次结构,但不确定。返回到smoke.position的数字已经不正常了......

0 投票
1 回答
67 浏览

swift - 即使不是直接在physicsbody上也可以联系

我有一个奇怪的行为SKPhysicsbody

首先让我向您展示我的主节点:

现在最重要的是,还有另一个没有任何物理体的 SKSpriteNode,我们称之为path

一段时间后,我生成了另一个节点,即上面的 playernode path

所以在我看来,只有当它被移到节点之外并且它真的触及背景didBeginContact时才应该触发。playerNodepath

但目前,在didBeginContact我将 playerNode 生成在path.

我错过了什么吗?

0 投票
1 回答
165 浏览

ios - SpriteKit(Swift)中的接触物理间隙

我正在开发我的第一个 swift iOS sprite kit 项目,但我遇到了一个我无法找到解决方案的问题。我的目标是让球落在一个移动的平台上,并且球和平台在接触时都停止。

我遇到的问题是,当代码识别出它们正在接触并使它们停止时,平台和球之间始终存在间隙。见附图:

图片在这里

球:

平台:

开始联系:

0 投票
1 回答
51 浏览

ios - 如何检测 SKSpriteNode 接触但不反应?

我有两个 SKSpriteNode 第一个 Hero

第二个是硬币

而且我能够通过以下方式进行碰撞检测

现在我的问题是每次英雄跳跃并触摸硬币时它会下降到地面而不是继续跳跃并达到应有的高度,我知道我在这里遗漏了一些东西但不知道它是什么,所以任何人都可以请告诉我正确的方向来纠正这种效果。

0 投票
1 回答
497 浏览

swift - SKPhysicsJointFixed 在 SpriteKit 和 Swift 中

我正在使用 Sprite Kit 和 Swift 制作游戏,我在屏幕底部有一个 Sprite,从顶部掉落的 Sprite 我想抓住并粘在底部的 Sprite 上,所以我正在尝试使用 SKPhysicsJointFixed但是当物体发生碰撞而不是下落的物体粘在底部的物体上时,它应该抓住并附着它,看起来好像底部的精灵适应了下落精灵的物理特性,然后随着它从屏幕上掉下来。这是我的 didBeginContact 方法中的代码。并且 skewer 是底部 Sprite 的名称,它应该始终位于底部并且不会消失。

和底部屏幕精灵的物理在这里

和坠落精灵的物理在这里

0 投票
0 回答
30 浏览

objective-c - SKPhysics 的非常奇怪的行为

我有这个代码

在此处输入图像描述

我已经从我的-(void)didBeginContact:(nonnull SKPhysicsContact *)contact方法中捕获了这个屏幕截图。我觉得这很令人困惑,因为2 & 3 == 2, 但是4 & 3 == 0。如文档中所述,

如果任一比较结果为非零值,则会创建一个 SKPhysicsContact 对象并将其传递给物理世界的委托。

我想知道怎么可能?既然第二个表达式返回 0,为什么要调用委托方法?