【问题标题】:Access array in GameScene from SKSpriteNode class instance?从 SKSpriteNode 类实例访问 GameScene 中的数组?
【发布时间】:2016-10-13 08:17:45
【问题描述】:

我在我的 GameScene 实例中创建了一个数组,并将其填充到 didMove(to view: )...

如何从 SKSpriteNode 的实例访问该数组中的值?

据我所知,从模板中,我没有对 GameScene 实例的引用。但我也可能在这方面有所欠缺。

【问题讨论】:

  • 这个答案几乎完全回答了另一个问题。:stackoverflow.com/a/33957745/2109038
  • 这个数组有什么用?这个精灵代表什么?我会假设场景中的任何精灵都需要访问数组。情景将决定可能的方法
  • 我确信@MobileBen 有一百万种不同的方法可用于一百万种不同的场景。但是,在这个阶段,我只是想从该数组中获取元素,修改它们,然后从那里开始。对我来说,软件架构设计是世界上最令人困惑的事情,所以我将这个问题设定为一个简单的目标。我不想让 SO 负担整个目标,只是打开窗格让我查看视图的窗口。是的...我后悔双关语。
  • 我查看了该链接,根据您的描述,它似乎可以工作。你说它很接近,但在哪些方面它不是?
  • 据我所知,那是一个小游泳池,这正是我所需要的。我已经对其进行了测试,它为我提供了我想要的访问权限。我很高兴!让我困惑的一点,为什么它在一个函数中?

标签: arrays swift sprite-kit skspritenode


【解决方案1】:

虽然您链接到的答案将解决您的问题,但它会在节点和场景之间引入耦合,您以后可能会后悔。一个更强大的解决方案是允许节点引用它恰好在其中运行的任何场景,这是 iOS 中一种常见的设计模式,称为delegate 模式。

【讨论】:

  • 我并不是要你在这个问题上触发代码,只是指出任何显示委托系统如何工作的东西。我真的没有得到委托设计模式。也许根本没有。
  • @Confused 你可以看看我之前发的这个SO answer
  • 干杯。这让我踏上了阅读之旅。希望有些东西会坚持下去。我根本不清楚为什么耦合不好。我真的很喜欢它,并且精神上需要它。
  • @Confused 当您添加另一个场景并尝试将您的节点添加到这个新场景时,您会看到耦合问题!
  • 难道我不能将它与第一个场景分离,然后将它与第二个场景重新耦合吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多