如何获取SKSpriteNode名称?

2024-01-06

我正在使用我找到的代码并尝试找出如何获取我的对象的节点名称?

这是代码的一部分:

let sprite1 = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: 30, height: 30))
let sprite2 = SKSpriteNode(color: UIColor.greenColor(), size: CGSize(width: 30, height: 30))
let sprite3 = SKSpriteNode(color: UIColor.blueColor(), size: CGSize(width: 30, height: 30))
let sprite4 = SKSpriteNode(color: UIColor.yellowColor(), size: CGSize(width: 30, height: 30))

var selected: [UITouch: SKNode] = [:]

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    /* Called when a touch begins */

    selected = [:]
    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)
        selected[touch as UITouch] = nodeAtPoint(location)

        println(self.name)
    }
}

我想要实现的是获得println返回SKSprintNode名称(sprite1、sprite2、sprite3 或 sprite4)...我已经尝试了几种方法,但我得到的只是´nil´.

这可能吗?

Added:

那么,接下来,我如何检测触摸是否在我的对象内?这是更多代码:

override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
    for touch: AnyObject in touches {
        let location = touch.locationInNode(self)

        for (touch, node) in selected{
            if !contains(SKScene, node){
                let action = SKAction.moveTo(location, duration: 0.1)
                node.runAction(SKAction.repeatAction(action, count: 1))
            }
        }

    }
}

随着if !contains(SKScene, node)(这不起作用,无法测试SKScene)我想检测触摸是在物体上还是在外面。如果在外面(触摸是 SKScene)我不想做任何事情。

我想这样做而不是测试的原因let名称为 i.esprite1是我打算做所有SKSpriteNode以编程方式,所以我不需要知道节点对象的名称。

有什么建议么?


您正在设置变量的名称,但没有设置 SKSpriteNode 的名称。它应该是:

 sprite1.name = @"sprite1";

对其余的精灵进行同样的操作。

我注意到的另一件事是你调用 self.name。我很确定 self 指的是场景(如果这是该代码所在的位置)。相反,您应该将所选内容保存为 SKSpriteNode 并调用 selected.name。

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

如何获取SKSpriteNode名称? 的相关文章

随机推荐

  • 等待审核的典型时间? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我将我的第
  • ValueError:无法将大小为 2 的序列复制到维度为 4 的数组轴

    谁能向我解释一下这个错误来自哪里 这意味着什么 我该如何解决这个问题 也许我的问题太笼统了 抱歉 但我不知道我应该在这里放更多什么 P Error Traceback most recent call last File C test 7
  • 大型对象的 Redux 性能

    我正在使用 Redux 和 React 构建一个 Web 应用程序 我的应用程序是一个呈现大量数据的分析应用程序 当我的商店变大时 我会遇到性能问题 避免 redux 中大数据出现性能问题的首选方法是什么 应用结构 我的应用程序的结构是这样
  • AWS 证书管理器 api 不显示导入的证书

    虽然证书管理器 UI 显示我导入的证书状态为 已颁发 但当尝试从 ELB 应用程序 lb 使用它时 我得到 没有可用的证书 对 api 的 POST 请求返回空列表 另外 当我运行 aws acm list certificates max
  • 维护 .NET 项目中引用的 COM dll 的正确版本

    我想在 NET 项目中引用 COM DLL 但我还想确保创建的互操作 DLL 具有正确的版本 以便补丁知道何时必须更改 DLL 如果我使用TlbImp我可以用以下命令指定所需的版本 asmversion标志 但当我直接从 Visual St
  • 如何在反应头盔中预加载最大内容的绘画图像

    我在灯塔收到这个警告 我尝试做 了解更多 链接告诉我要做的事情 并在图像的头部包含一个预加载标签 但我仍然收到警告 我尝试了这个预加载标签 该网址是当我右键单击图像并选择 在新选项卡中打开 时浏览器中的网址 图像刚刚导入到 jsx 组件中
  • Python csv writer 分隔符错误?

    免责声明 我在欧洲 根据这一页 http www paessler com knowledgebase en topic 2293 i have trouble opening csv files with microsoft excel
  • SimpleForm 不带 for(非模型表单)

    是否可以在没有模型的情况下使用简单表单 由 Plataformatec 提供 https github com plataformatec simple form https github com plataformatec simple
  • Xcode 静态分析器抱怨使用 ARC 时存在潜在泄漏

    我正在使用 ARC 和 ios sdk 6 0 我很确定我有一些内存泄漏 我很难追踪到 运行静态分析器后 我收到有关以下两种方法的警告 id
  • 在 Visual Studio 中调暗/隐藏代码日志行

    有什么方法可以使 Visual Studio 变暗或隐藏 显示我的代码的按需日志记录行 我们在项目中使用了大量的日志记录 并且很难阅读这样的代码 我希望它是这样的 例如 Unobtrusive Code 扩展对我来说适用于 Visual S
  • 是否可以通过编程方式禁用 iOS 7 中的控制中心?如果不能,有哪些替代方法?

    我开发了一个使用自下而上滑动手势的应用程序 它在 iOS 6 中工作得很好 但现在 iOS 7 出来了 它可能工作了二十五次之一 我几乎每次都会得到 iOS 7 控制中心 显然 可以在 设置 中禁用控制中心 但这取决于手机所有者 我无法控制
  • Python 中的“变量 //= 值”语法是什么意思? [复制]

    这个问题在这里已经有答案了 我遇到了代码语法d 2其中 d 是变量 这不是任何循环的一部分 我不太明白这个表达 有人可以启发我吗 是楼层划分操作员 这 旁边的意思是 就地 对变量进行操作 它类似于 and 运算符 如果您以前见过这些运算符
  • Python-算法语句

    我想编写一个执行以下操作的程序 输入示例 3 10 4 18 2 6 19 24 1 20 预期输出 4 2 2 2 6 1 1 输入将来自一个文件 其中第一行将包含窗口大小 N 第二行将包含由空格分隔的数字流 您需要输出每个窗口中以空格分
  • Jquery Datatable 将一行从一个表拖放到另一个表

    我正在使用 jquery dataTables js 并且尝试将行从一个表拖放到另一个表 反之亦然 从表 2 拖放到表 1 如下示例所示 http jsfiddle net yf47u http jsfiddle net yf47u 上面的
  • jenkins Slave 以用户身份运行

    我有一个詹金斯设置 有多个用户登录活动目录插件 http www greenreedtech com jenkins active directory 这很有用 这样每个用户都可以访问自己的任务 然而 每个用户在本地网络上也有不同的权限 例
  • 我可以传递前向声明的枚举值吗?

    当向前传递声明的结构或类时 必须通过引用或指针将其传递给函数 但是 前向声明的枚举可以做什么呢 它是否还必须通过引用或指针传递 或者说 可以传递一个值吗 下一个示例使用 g 4 6 1 编译良好 include
  • 从“Android 私人库”中删除灰显的项目。无法删除罐子

    我有一个 Eclipse 项目 我正在尝试将库更新为较新的 Jar 文件 但是 Eclipse 项目不允许我删除旧的库 我关闭了 eclipse 并尝试从文件夹中手动删除它并重新启动 eclipse 但它仍然不允许我现在编译 因为旧的 ja
  • 将 dd-mm-yyyy 字符串转换为日期

    我正在尝试使用以下命令将 dd mm yyyy 格式的字符串转换为 JavaScript 中的日期对象 var from datepicker val var to datepickertwo val var f new Date from
  • 如何使用 LanguageExt EitherAsync 返回 Left 的非错误类型?

    我有一个方法 可以在数据库中查找会员卡 如果找到并且有效则返回它 或者返回enum值 如果没有 这允许调用代码打开enum价值 我想退货Either
  • 如何获取SKSpriteNode名称?

    我正在使用我找到的代码并尝试找出如何获取我的对象的节点名称 这是代码的一部分 let sprite1 SKSpriteNode color UIColor redColor size CGSize width 30 height 30 le