如何正确使用 allContactedBodies?

2023-12-04

我想使用 allContactedBodies 而不是 didBeginContact 和 didEndContact。

当我做 :

NSLog(@"%@", node.physicsBody.allContactedBodies );

与物体发生正确的接触,我得到类似的信息:

"<SKPhysicsBody> type:<Rectangle> representedObject:[<SKNode> name:'theBall' position:{149.55787658691406, 91.00054931640625} accumulatedFrame:{{70.462608337402344, -16.016334533691406}, {112.56977081298828, 127.18753814697266}}]"

现在我想做的就是说,好吧,太好了,如果您看到名称:“theBall”,那么我们就已连接。 所以我尝试执行以下代码,但不起作用。

if ([node.physicsBody.allContactedBodies containsObject:@"theBall"] ) {
            NSLog(@"Connected");
}

我究竟做错了什么?任何想法?

Thanks.


The allContactedBodies属性返回 SKPhysicsBody 对象的数组。您可以使用以下命令访问每个物理主体所附加的节点nodeSKPhysicsBody 的属性

NSArray *tempArray = [yourNode.physicsBody allContactedBodies];
for(SKPhysicsBody *body in tempArray)
{
    if([body.node.name isEqualToString:@"theBall"])
        NSLog(@"found the ball");
}

在 Swift 中,上面相同的代码可以写成:

val ballNode: SKNode? = yourNode.physicsBody.allContactedBodies().first(where { $0.node.name == "theBall" })?.node
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何正确使用 allContactedBodies? 的相关文章

  • 在 Swift 中比较 UIColors 时出现问题

    我需要比较两个 UIColor 但由于某种原因它总是返回 false 我尝试比较使用 and isEqual 但它们似乎都不起作用 This is a sample of the colors I have created let blue
  • didMove(查看: SKView) 和 didMoveToView(查看: SKView) 有什么区别?

    如标题所示 didMove to view SKView 和 didMoveToView view SKView 有什么区别 我知道 didMoveToView 是方法 并且该视图在旧 版本中属于 SKView 类型 我不明白将 查看 SK
  • SKPhysicsJointFixed 在移动节点时不会将节点保持在一起

    我创建了 2 个 SKSpriteNode 并通过 SKPhysicsJointFixed 将它们连接起来 以使它们粘在一起 问题是当我应用SKAction move by duration 对于第一个 它单独移动 为什么会这样 我怎样才能
  • Swift SpriteKit SKSpriteNode 的“有时”不出现

    我正在使用 Swift 和 SpriteKit 制作 iOS 但是 我的应用程序运行时遇到不规则现象 有时船舶 SKSpriteNodes 不会出现在屏幕上 有时子弹的 SKSpriteNodes 不会出现 有时一切都显示良好 我将子弹添加
  • Spritekit 动画没有改变

    我的游戏中有一个虚拟控制板 如果我点击并按住方向按钮之一 播放器就会朝正确的方向移动并显示正确的图像和动画 但是 如果我将手指从一个控件滑动到另一个控件 例如从右到下 播放器会向下移动 但图像和动画不会改变 直到我抬起手指 下面是我处理触摸
  • 如何使用 Sprite Kit 逐步模糊 SKSpriteNode 的图像?

    有人可以提供一个如何使用 Apple 的 Sprite Kit 逐渐模糊 SKSpriteNode 图像的示例吗 例如 假设用户触摸屏幕上的按钮 该按钮将触发背景缓慢 即逐渐 模糊 直到达到特定阈值 理想情况下 我也想反转该过程 例如 允许
  • SpriteKit和粒子碰撞

    我有一个粒子发射器 我想在粒子碰撞某些物理体时检测到它 SpriteKit API 中是否有本地方法可以做到这一点 或者我是否需要 作弊 单个粒子不能碰撞 不是用物理学 也不是任何其他方式 您甚至无法获得有关单个粒子的任何信息 您无法访问它
  • 如何在Spritekit中创建计时器?

    我已经弄清楚如何在单视图应用程序中制作计时器 但没有弄清楚 Spritekit 当我使用以下代码时 出现 2 个错误 如下所示 谁能帮我解决这个问题吗 谢谢 杰克 计时器 if scorelabel scorelabel SKLabelNo
  • 具有内边缘的 SpriteKit SKPhysicsBody

    我创建了一个SKSpriteNode比如说Map它有一个我定义的边缘路径 一些简单的多边形形状 我想弄清楚的是如何添加几个other将充当内部边缘的边缘路径Map 就好像整个 地图 实际上确实有holes 某种内部边界形状可以与Map整体
  • Sprite Kit 物理碰撞问题

    我遇到了一些碰撞问题 我有两个大小和质量相同的物体 当一个物体与另一个静止物体碰撞时 我会得到正确的行为 图像中的灰色区域 当我有两个彼此相邻的对象时 行为不太正确 Spritekit 结果在左侧 右侧是预期 需要的结果 我想我知道发生了什
  • 尝试添加已经有父级错误的 SKNode

    我在尝试运行我的游戏时收到错误 尝试添加已有父节点的 SKNode 如果我将 SKSpriteNode 在本地添加到函数中 它就可以正常运行 但是当我尝试在全球范围内声明它时 我收到了该错误 任何解决此错误的帮助都会很棒 我认为这与self
  • 使用 SKAction colorizeWithColor 使 SKSpriteNode 闪烁白色

    好的 我有一个精灵 当被某物击中时应该会闪烁白色 我正在使用这个 SKAction changeColorAction SKAction colorizeWithColor SKColor whiteColor colorBlendFact
  • 指定随机粒子起始颜色而不进行动画更改?

    有没有办法让粒子根据当前的 颜色渐变 产生随机的每个粒子颜色 粒子在其生命周期内不会改变颜色 它们只是在出生时从 颜色渐变 的某个地方被分配了一种颜色 并保持该颜色直到它们死亡 其结果将是出生时的粒子与从红色到蓝色的混合颜色的混合 在我的测
  • 如何在Sprite Kit中实现鼠标关节?

    我已经在 iOS 上用 Cocos2d Box2d 编写了拖放功能的工作实现 我需要将它移植到 Sprite Kit 逻辑非常基本 当用户触摸屏幕时 找到手指下的精灵 在找到的精灵和场景的物理体之间创建鼠标关节 将关节的目标设置为触摸位置
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • 为什么这个 SKPhysicsJointPin 不能将这 2 个精灵保持在一起?

    我显然不太了解 SKPhysicsJoint 但是除了 Apple 文档之外 网上的信息还很少 下面的代码有什么问题 我认为应该保持头部和颈部永久连接 我的意图是它们就像两张带有大头针的纸 这样它们可以旋转一点 但不仅仅是完全分开 当我运行
  • 使用 Swift 在 Sprite Kit 中构建棋盘游戏? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在使用 Swift 的 Sprite Kit 中 我试图构建一个国际象棋棋盘 实际上是一个类似国际象棋的棋盘 平铺网格 那么一般来说
  • 如何使用 Swift 将高分游戏保存在排行榜上?

    我使用 SpriteKit 和 Xcode 7 beta 制作了一个游戏 我尝试放置 GameCenter 和 Leaderboard 但问题是排行榜中的分数不会改变 它始终保持 0 游戏的高分不会保存在 Leaderboard 中 我不知
  • 有没有办法直观地看到精灵套件的 SKPhysicsbody 边界线?

    我在用bodyWithPolygonFromPath定义物理体的体积 我使用http dazchong com spritekit http dazchong com spritekit 获取所需的路径 但路径似乎不正确 我希望查看物理体路
  • 将图像作为球分配给 SKShapeNode - Spritekit 游戏

    我正在尝试在 Swift 2 Sprite kit 游戏中向我的球添加图像 我有一个make ball 函数 但在游戏场景中没有错误 当调用该方法时 我不断收到此错误 无法分配 SKShapeNode 来输入 Ball 我不知道如何修复 并

随机推荐