问题标签 [sknode]

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 投票
2 回答
51 浏览

objective-c - spritekit 上的吸气剂

我有一个小问题。让我向您介绍一下:在 SpriteKit 上,我们有 MyScene.m 和 .h 文件。这个类有一个叫做“size”的属性。我们可以使用“self.size”从 MyScene.m 文件中访问它。我创建了一个名为 Menu 的类,所以我们有一个 .m 和一个 .h。该类是“SKNode”的子类。我的问题是我想在我的 Menu 类中获取 MyScene 类的“size”属性的值。因为我有一些节点要添加到 Menu 对象,它们的位置将取决于 MyScene 的“大小”属性。

你能告诉我怎么做吗?谢谢你

0 投票
2 回答
441 浏览

objective-c - 为所有 iOS 版本的子类 SKNode 对象创建便捷方法

我正在使用下面的代码为子类 SKNode 对象创建一个方便的方法。这似乎工作正常。让我烦恼的是,SKNode 类参考明确指出 -init 符号仅适用于 iOS 8.0 及更高版本。我的应用程序的部署目标是 iOS 7.1。

我担心我的代码中的 init 方法被转移到 iOS7.1 的继承链上,绕过了由 SKNode 自己的便捷方法(+节点)或初始化程序(-init)初始化的任何内容。根据 iOS 版本号,我的代码是否有可能导致节点(甚至对象)有所不同?与此相关,当我写:

Xcode 6 自动补全给“init”一个红色删除线,但没有解释原因(截图)。这是因为潜在的版本问题,还是其他原因?

0 投票
1 回答
354 浏览

ios - “SKNode?” 没有名为“职位”的成员

我究竟做错了什么?我似乎无法弄清楚这一点。我试过在后面加一个感叹号var thisBlock = self.childNodeWithName(block): ,

这给了我一个新的错误说法。type () does not confirm to protocol 'BooleanType'.

0 投票
1 回答
65 浏览

objective-c - 如何在不知道有多少变量的情况下声明和初始化一个变量?

让我解释一下我的意思:

我需要根据通过方法传递的值来声明和初始化 x 个 SKNode 变量(介于 1 和 15 之间):

每个 SKNode 都将被添加到 NSMutableArray 中,因此我不会遇到引用问题(我将使用 获取每个项目[myArray objectAtIndex:])。由于大量内存浪费和奇怪的编程风格,我认为创建 15 个 SKNode 变量可能不是最好的解决方案。

有什么线索吗?

0 投票
1 回答
466 浏览

swift - Swift 可选绑定和 SKNode.name

有没有更好的方法来编写我得到每个 SKNode 名称的代码,它似乎有点啰嗦。

我可以写,(见下文)即使没有名字也能工作,但如果感觉不好,因为它强制解开一个可选项。

我知道 Swift 是关于安全的,但感觉就像我陷入了代码的困境,想知道我是否遗漏了什么?

编辑: 我注意到即使SKNode.name是字符串?如果您强制打开它并且它没有返回值并且为空 String "",我认为它会返回 nil。

EDIT2: 请注意,Antonio 的答案确实是我所追求的,但是在SKNode.name节点来自scene.SKS文件的情况下,似乎即使没有指定名称,节点仍然会获得名称""(空字符串)。如果你运行代码:

您将获得给定的"Name""",您将永远不会获得"Undefined"如果您设置eachChild.name = nil并运行上面的代码,您将获得"Undefined"我假设*.sks如果没有指定其他值,文件中的 name 属性将设置为“”。

0 投票
0 回答
484 浏览

position - 在 spritekit 中发射弹丸

我正在寻找从另一个 Sprite 节点(敌舰)射击 SKSpritenode(炮弹)。炮弹应该从敌舰节点直接向下移动到屏幕底部。我似乎无法正确定位,炮弹似乎从屏幕的角落射击并且没有移动很远,敌舰节点是从屏幕上所有光环的数组中随机选择的,炮弹位置分配给前面的光环:

//炮弹

// 敌舰节点数组

任何输入表示赞赏。

0 投票
1 回答
436 浏览

ios - Sprite Kit SKNode 命中区域

我正在构建我的第一个精灵套件游戏。到目前为止一切顺利 - 我几乎准备好发布了。然而,我遇到了一个非常难以触摸节点的问题(对于用户)

流动

  • 节点以大小 (0,0) 生成
  • 然后使用 SKActions (scaleTo) 将节点缩放到某个 max_size
  • 用户在 (0,0) 和 (max_size, max_size) 之间的点点击节点
  • 点击已注册并进行游戏

问题

当然,节点的命中区域仅与当前显示的比例因子一样大。这意味着要在生成时点击节点,用户必须点击 (1,1) 像素字段(或类似字段)

问题

有没有一种方便的方法可以让区域从一开始就在 (max_size,max_size) 处注册水龙头?

0 投票
2 回答
698 浏览

ios - SpriteKit - 检测节点是否命中另一个节点子节点并执行操作

我有一个 Cat 节点和一个 Bird 节点。鸟节点嵌套在一个称为birdBlock 的容器节点中。一切都包含在 WorldNode 中。如果我将一只鸟添加到 WorldNode,Cat 可以与它​​进行适当的交互,但是当鸟在 birdBlock 中时,Cat 只是将它们推开,它们会飞起来。

我正在使用以下内容来查找我的鸟:

街区里的鸟有正确的名字。

它们现在正在被枚举,但除了在屏幕上飞来飞去之外,它们仍然不与猫互动。

现在我正在这样做:

所以这也不起作用。如何更改精灵的坐标系?

0 投票
1 回答
188 浏览

for-loop - Swift:在 for 循环中进行类型转换

我是 Swift 的菜鸟。我正在尝试遍历 SKNodeTree 并检查这里是否有可怕的怪物节点。但是我无法弄清楚如何对 for 循环进行类型化。我知道这可以通过“as”子句实现。

顺便说一句,在 Swift 中将字符串与 == 进行比较好吗?

0 投票
0 回答
479 浏览

ios - 斯威夫特:SKNode相交节点不工作

以下代码无法按预期工作。由于我无法理解的原因,“怪物相交玩家”从未被称为。这是怎么回事?

对于玩家节点与怪物节点相交的一个玩家节点和三个怪物节点,将打印以下内容: