SKshapenode 没有响应Physicsbody

2024-03-27

我创建了一个SKShapeNode我已经分配了一个physicsBody到它。然而,当有接触时它不会被触发。

的制作SKShapeNode code:

-(SKShapeNode*)gravityline{
    //SKSpriteNode *lolo=[[SKSpriteNode alloc]init];
    SKShapeNode *lolo = [[SKShapeNode alloc] init];
    CGPoint fff=CGPointMake(ray1.position.x, ray1.position.y);
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, fff.x, fff.y);
    CGPathAddLineToPoint(path, 0,rayoriginpoint.x,rayoriginpoint.y );
    CGPathCloseSubpath(path);
    lolo.path = path;
    lolo.name=@"gravityline";
    lolo.strokeColor=[SKColor greenColor];
    lolo.glowWidth=.1;
    CGPathRelease(path);
    lolo.physicsBody=[SKPhysicsBody bodyWithEdgeFromPoint:fff toPoint:rayoriginpoint];
    //lolo.physicsBody=[SKPhysicsBody bodyWithEdgeLoopFromPath:path];
    //lolo.physicsBody=[SKPhysicsBody bodyWithPolygonFromPath:path];
    lolo.physicsBody.categoryBitMask=raylightCategory;
    lolo.physicsBody.collisionBitMask=batCategory;
    lolo.physicsBody.contactTestBitMask=batCategory;
    lolo.physicsBody.usesPreciseCollisionDetection=YES;
    lolo.physicsBody.linearDamping=0;
    lolo.physicsBody.restitution=1.0;
    lolo.physicsBody.dynamic=NO;

    return lolo;
}

这是触发代码:

- (void)didBeginContact:(SKPhysicsContact *)contact
{
    SKPhysicsBody *firstBody, *secondBody;
    if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask)
    {
        firstBody = contact.bodyA;
        secondBody = contact.bodyB;
    }
    else
    {
        firstBody = contact.bodyB;
        secondBody = contact.bodyA;
    }
    if (firstBody.categoryBitMask == raylightCategory && secondBody.categoryBitMask==batCategory)
    {
        NSLog(@"Contact with bat have been made");
        [secondBody.node removeFromParent];
    }
}

如果有人知道我做错了什么,为什么SKShapeNode没有激活物理主体,请告诉我。


这肯定行不通:

lolo.physicsBody=[SKPhysicsBody bodyWithEdgeFromPoint:fff toPoint:rayoriginpoint];

如果有的话,这将返回一个已经分配给不同节点的主体。但我猜它只是返回零。

此注释行也不起作用:

//lolo.physicsBody=[SKPhysicsBody bodyWithEdgeLoopFromPath:path];

边缘形状将创建静态(如:不可移动)物体。因此,这个节点不会在物理中移动,如果我没有弄错的话,你也不会从与静态物体的接触中得到接触响应,而只能从动态物体中得到接触响应。

这个应该可以工作:

//lolo.physicsBody=[SKPhysicsBody bodyWithPolygonFromPath:path];

但是,您可以在此处将主体设置为静态主体:

lolo.physicsBody.dynamic=NO;

因此,应用相同的规则,就好像您正在创建带有边缘循环的实体一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SKshapenode 没有响应Physicsbody 的相关文章

  • 电话号码的 Swift 2 国家/地区代码

    我正在尝试从 iPhone 用户处获取国家 地区代码 我不确定是否有有关该国家 地区以及某些应用程序 如 Viber 如何建议拨号代码的信息 我到目前为止 let currentLocale NSLocale currentLocale l
  • 从 Xcode iOS 项目运行 swift 脚本作为构建阶段

    这是一个简单的快速脚本 usr bin env xcrun swift import Foundation let task NSTask task launchPath bin echo task arguments farg1 arg2
  • JavaScript 与 WKWebView 的同步本机通信

    使用 WKWebView 可以在 JavaScript 和 Swift Obj C 本机代码之间进行同步通信吗 这些是我尝试过但失败的方法 方法 1 使用脚本处理程序 WKWebView接收JS消息的新方式是使用委托方法userConten
  • iOS 以编程方式撤销位置服务权限

    有没有一个功能CLLocationManager or UIApplication撤销位置权限类似功能unregisterForRemoteNotifications撤销推送通知权限 The stopUpdatingLocationCLLo
  • 如何在 tvOS 中添加检测按钮按下情况?

    我已经遵循这个tutorial http jamesonquave com blog developing tvos apps for apple tv with swift 一切正常 我遇到的唯一问题是我不知道如何检测何时按下按钮 提前致
  • Swift:如何审查/过滤输入的脏话等文本?

    我只是想看看是否有一种既定的方法可以做到这一点 或者如何去做 我有一个文本字段 它本质上充当我的 iOs 应用程序中的表单 用户可以在其中发布内容 我不能让用户发布脏话 不恰当的废话 所以我想过滤掉他们输入的字符串包含这些单词之一的内容并显
  • 在 SwiftUI App 中实现深色模式切换

    我目前正在我的应用程序中研究深色模式 虽然由于我的 SwiftUI 基础 深色模式本身并不困难 但我正在努力选择将 ColorScheme 设置为独立于系统 ColorScheme 的选项 我在苹果人机界面指南中找到了这一点 https i
  • Swift 中的自定义输入视图

    我花了几个小时试图弄清楚如何创建 然后定制inputView上班 我有一个网格TextInputs 想想拼字板 按下时应该加载自定义inputView插入文本 我创建了一个 xib文件包含UI elements为定制inputView 我能
  • UIView 内的 UIButton 目标操作

    我有一个习惯UIView我创建了一个UIButton 在该视图中 我有以下代码 func setupViews menuControlButton addTarget self action toggleButton forControlE
  • Swift 5 MacOS 图像调整大小内存问题

    我是使用 Swift 进行 Mac OS 应用程序开发的新手 但我尝试制作简单的 ImageResizer 应用程序 我必须调整 50k 图像的大小 10个小时后 内存已增加到近120GB 我以为 Swift 也有垃圾收集器 为什么它可以增
  • AVPlayerLooper 每次迭代后黑闪

    我正在使用 Apple 的示例代码在UICollectionViewCell背景 我在用着AVPlayerLooper 因为它是同一视频的迭代 我的问题是 当视频结束时 它会显示轻微的黑屏闪烁 也许它正在将视频搜索到0时间 我不确定 这是代
  • 我可以对图像进行动画处理吗 iOS8 LaunchScreen.xib

    问题 有没有方法可以为针对 iOS 8 1 部署的 Xcode 6 项目的 LaunchScreen xib 文件中的任何内容设置动画 Context 我正在寻找制作简单的动画来传达活动或在用户等待时分散他们的注意力 例子 加载栏 活动指示
  • 如何覆盖应用程序中的内部框架方法(框架外部)

    在 Swift 中子类化时是否有重写内部框架方法 前任 超类 public class BarChartRenderer ChartDataRendererBase internal func drawDataSet context con
  • UIView 框架更改时阴影层不调整大小

    问题图像截图 https i stack imgur com cyc5o png class ViewController UIViewController var shadow UIView override func viewDidLo
  • 快速布尔运算

    这实在令人困惑 有人有什么想法吗 let viewHasMovedToRight false initially I want this to be false then func moveViewToRight sender UIButt
  • 如何将 4 个字节转换为 Swift 浮点数?

    我正在用 Swift 编写一个 MsgPack 解析器作为学习该语言的一种方式 感觉不太适合这项任务 但我一直在进步 现在我遇到了一个块 我似乎无法说服它将 4 个字节转换为浮点数 var bytes Array
  • Swift 2 OAuth2 LinkedIn 连接

    我将使用 Swift 2 和 Xcode 7 制作一个本机 iOS 应用程序 用户应该使用 LinkedIn 和 OAuth 2 登录 但我想知道应该如何开始设置 我对 OAuth 2 没有太多经验 有好的教程或示例应用程序吗 我看到了雷
  • 由于没有系统应用程序而终止

    这个错误让我发疯 我有一个按钮 我想移动到视图控制器 如果我将其设置为初始视图控制器 我可以打开该视图控制器 但现在我通过单击按钮来调用它 视图控制器包含一个自定义视图 我在绘制矩形上放置了一个断点 当绘制矩形完成时 模拟器终止 我在屏幕上
  • 在启用滚动的情况下扩展堆栈视图内的 UITextView

    我正在尝试使用自动布局和 Stackview 来实现一些目标 我有一个垂直 Stackview 其中包含 UIView UITextView 和 UIView 如下所示 我已经在这里查看了以前的答案 但找不到一个干净的解决方案来实现此目的
  • iOS 视频压缩 Swift iOS 8 损坏的视频文件

    我正在尝试压缩用户相机从 UIImagePickerController 拍摄的视频 不是现有视频 而是动态视频 以上传到我的服务器 并花费少量时间来完成此操作 因此较小的尺寸是理想的选择 而不是 30 较新质量的相机为 45 mb 这是在

随机推荐

  • 在单个查询中获取分页行和总计数

    核心要求 查找 a 的最新条目person id by submission date对于指定的过滤条件type plan status 可能有更多这样的过滤器 但无论如何 按提交日期返回最新的逻辑是相同的 有两个主要用途 一是在 UI 中
  • Android setContentView 还是 Intents?

    我有一个非常简单的 2 屏幕 Android 应用程序 简单地通过 setContentView 切换布局有什么缺点吗 或者我应该使用意图吗 如果出现问题 我不想打扰我的应用程序 另一件需要考虑的事情是 活动形成了stack http de
  • 从重叠的日期范围中获取不同的连续日期范围

    我需要从重叠日期列表中获取彼此不重叠的日期范围列表 并获取重叠期间的硬币总和 我尝试过用谷歌搜索一个例子 但到目前为止还没有运气 我可能没有使用正确的关键词 我有一个重叠日期的列表 1 1 2018 31 1 2018 80 7 1 201
  • 有没有一种方法可以使用 JavaScript 在网页中漂亮地打印 JSON?

    在我看来 漂亮打印 JSON 是一个足够简单的任务 JavaScript 应该能够处理它 有没有人编写过 或运行过 JavaScript 函数来执行此操作 执行此操作的一个简单方法是执行 JSON stringify data null w
  • 导入 go 包时出现问题

    这是我的代码结构 addition summing sum prg go addition go go mod go mod 的内容 module addition go 1 14 sum prg go 的内容 package summin
  • 如何在 Haskell 中查找运行时的核心数量

    Haskell 是否有一种方法可以确定运行时机器上存在的 CPU 核心数量 是的 有这样的方法 来自 现实世界 Haskell 的代码 http book realworldhaskell org read concurrent and m
  • 如何在eclipse中导入Jdeveloper java项目?

    我在 Jdeveloper 中有一个 java 项目 但我想将该项目迁移到 eclipse java 项目 你知道该怎么做吗 或者我必须手动导入它吗 提前致谢 通常 如果项目是基于 Web 的项目或 java 项目 则它有其结构 您应该能够
  • 无法在 VS2015 Enterprise 中使用 Microsoft Fakes - 缺少 COR_PROFILER

    我正在尝试在 VS 2015 Enterprise 中使用 Microsoft Fakes 我什至无法运行任何测试 我没有 testsettings 或 runsettings 文件 简单的测试项目参考 Microsoft QualityT
  • 与 Objective C 相比,Swift SHA256 加密返回不同的加密字符串

    我正在将一些代码从 Objective C 迁移到 Swift 我想在 swift 中使用 SHA 256 算法用密钥加密字符串 但与 Objective C 实现的 swift 代码相比 返回不同的加密字符串 两个代码看起来相同 只是语法
  • 自定义文件格式和编解码器?

    我已经被编解码器问题弄乱了好几天了 但仍然看不到全局 这是我第一次处理音频 视频格式和编解码器 所以我真的需要一些帮助 这是工作 我正在编写几个负责编码和解码自定义 mpeg 文件的组件 在标准解 压缩过程 对于音频和视频 之上 我将实现一
  • 使用假会话测试控制器

    我想为我的控制器编写测试 Result changeAction callAction controllers routes ref Users changePassword assertThat status changeAction i
  • 将 Xtext 与 StringTemplate 代码生成器链接

    在我当前的项目中 我试图链接用 xtext 编写的 DSL 规范和用 StringTemplate 编写的代码生成器 例如 我的 DSL 规范的语法如下 我通过 xText 提供的优秀编辑器工具输入此信息 structs TempStruc
  • 如何在WinRT下并行线程中执行C++函数?

    我有一个 C 代码 它使用 beginthreadex Windows 方法在线程中执行函数 现在我想将其移植到 WinRT 组件以将其包含在 Windows Phone 应用程序中 但Windows Phone不支持 beginthrea
  • 如何在 Excel VBA 中对字符串进行 URL 编码?

    是否有内置方法可以在 Excel VBA 中对字符串进行 URL 编码 或者我是否需要手动执行此功能 不 没有任何内置内容 直到 Excel 2013 看到这个答案 https stackoverflow com a 24301379 18
  • Java COM 桥

    我有一个超低延迟程序 需要与 Windows COM 组件交互 最快的方法是什么 使用像 JACOB 这样的 COM 桥或编写本机 COM 库并使用像 ZeroMQ 这样的消息总线发送消息 如果您使用 ZeroMQ 您将处理两个进程 将消息
  • 使用 Guid 和自定义表名称以及 Asp.net Identity 1.1 Alpha 创建自定义实现

    我从不同的问题中得出结论 在我提出问题时在下面列出 我想做五件事 据我从这些问题和答案中可以看出 所有这些都可以在我的 OnModelCreating 方法中完成 Preface 我正在使用 Asp Net Identity 1 1 alp
  • 叉子和线程有什么区别?

    谁能解释一下叉子和线程之间的区别 分叉给你一个全新的进程 它是当前进程的副本 具有相同的代码段 当内存映像发生变化时 通常这是由于两个进程的不同行为 您会分离内存映像 写入时复制 但可执行代码保持不变 任务不会共享内存 除非它们使用某些内存
  • 配置 Xcode 4 工作区以在需要时构建依赖项的正确方法是什么?

    我的情况很简单 一个工作区有两个兄弟项目 一个主 iOS 应用程序和一个构建该应用程序使用的多个静态库目标的项目 以下是我配置构建的方式 将主应用程序的构建设置中的 用户标题搜索路径 指向库项目位置 通过源树 在我的应用程序的主要目标的编辑
  • 如何将json数组插入mysql数据库

    您好 我正在尝试将 json 数组插入到我的 MySQL 数据库中 我正在从我的 iPhone 传递数据 我已将数据转换为 json 格式 并且使用未插入到我的服务器中的 url 将数据传递到我的服务器 这是我的 json 数据 姓名 0
  • SKshapenode 没有响应Physicsbody

    我创建了一个SKShapeNode我已经分配了一个physicsBody到它 然而 当有接触时它不会被触发 的制作SKShapeNode code SKShapeNode gravityline SKSpriteNode lolo SKSp