【发布时间】:2016-01-22 00:25:41
【问题描述】:
所以我对 SpriteKit 和 Swift 非常陌生,而且我并不真正了解节点背后的概念(或者实际上是 sprite-kit 中的任何内容)。我请求您向我解释节点的概念。
我更习惯于为每个节点使用不同的变量实例(例如创建一个数组),这允许我非常具体地引用任何单个节点。然而,在 sprite kit 中,情况似乎并非如此,因为您只需制作一次并使用 addChild 调用它的多个实例。 (比我一直在做的要好得多......)
这有点让我吃惊,因为我主要不明白如何为这些测试场景或其他东西,或者单独参考一个。例如,我正在尝试使用removeFromParent() 将对象从场景中移除,但我不知道如何实现:
if(enemy.position.x == 0)
{
SKAction.removeFromParent()
}
在我设置一个检查每个敌人的 for 循环之前,但这非常低效。我想我会在物理引擎提供的更新方法中这样做,但就像我说的我不知道如何调用它。
所以我的问题基本上是让你向我解释这里发生的事情的概念。假装我完全不了解这种类型的编程(我几乎不知道),如果你能像我五岁一样把它分解给我,那就太好了:D!
谢谢!
【问题讨论】:
-
SO 不是一个教程网站,它是一个特定问题和答案的网站,如果你想了解 SpriteKit,我建议你看看像raywenderlich.com这样的教程网站
-
@KnightOfDragon - 我不能再不同意了。 SO 是解决此类问题的理想场所。这里有一个庞大的程序员社区,他们愿意传授他们的知识。 SO 需要大幅减轻压力。
-
基本上你不必跟踪每个节点(在数组等中),因为当一个节点涉及到一些有趣的事情时(碰撞,它接触到一些东西,有人用他们的手指触摸它等等) 您的代码将被传递给感兴趣的事件所涉及的节点。对于您的 'enemy.position.x == 0' 示例,您可以使用 enumerateChildNodeswithName 检查每个节点的位置;或者你可以设置一个带有碰撞检测的边界,并在敌人到达那个位置时得到通知。或者你可以子类化敌人,让所有敌人检查自己的位置等
标签: xcode swift sprite-kit skspritenode skphysicsbody