今天使用SpriteKit进行扩展

时间:2016-04-30 02:17:20

标签: ios sprite-kit today-extension

我正在尝试创建一个小部件游戏,是否可以在今日扩展中使用SpriteKit?我一直在搜索类似的帖子,但我只发现了一个与在AppleWatch扩展中使用SpriteKit相关的问题。

4 个答案:

答案 0 :(得分:1)

我还在今天的屏幕上处理一些游戏。到目前为止,我已经找到了3个可靠的解决方案:

  1. 提到与UIKIT合作
  2. 最小方式使用SpriteKit
  3. 使用屏幕外图像进行渲染
  4. 解决方案2的问题是,它非常不可靠。即使定期打电话QString s; QTextStream ss(&s); double temp = 0.12345; int n = 0; if(temp > 0) { ss << "."; while (true) { temp *= 10; n = temp; if (temp == n) break; } ss << n; } lineEdit->setText(s); 也没有用。 所以它最终只是限制了 SKAction 的使用,带来了很多。

    解决方案3也很好,并且非常可靠。当然你必须重新发明轮子,不能使用SpriteKit的漂亮功能。但是因为我已经在watchOS游戏中使用过这种方法,所以在Extensions中使用它并不费力。

    我建议使用解决方案3,因为您可以完全控制并且它可以正常工作。

答案 1 :(得分:0)

绝对有可能。我认为你的目标是建立像流行的“史蒂夫”小部件游戏,我相信这是一个内置于今日扩展的SpriteKit游戏。

首先,我建议完全理解今日扩展及其限制,然后完全理解SpriteKit及其限制。

你真正想要关注的是创建一个非常有效的应用程序。四处,从实际代码和代码运行方式。这是因为Today Extensions不是真正的应用程序而是设备的“扩展”,所以如果你的游戏图形密集或内存密集,你的应用程序就会崩溃。

答案 2 :(得分:0)

我尝试在spriteKit中为ios今天扩展开发游戏,将SKViews添加到UIView,但它没有用。在今天的扩展中似乎没有加载场景。我认为这是不可能的 - 在今天的扩展中使用spriteKit。但我找到了很好的解决方案 - 使用UIKit而不是spriteKit。它是非常强大的游戏开发框架,我认为Steve游戏是通过UIKit开发的。您可以在此示例中通过UIKit检查添加动态:https://www.raywenderlich.com/50197/uikit-dynamics-tutorial

此外,如果需要,我可以在github上开发的今天的扩展游戏中上传使用UIKit的样本。

答案 3 :(得分:0)

我在几个月前制定了一个旨在解决这个问题的框架,link here。我还没有时间在iOS 11中正确测试它,所以可能会有一些新的错误。

我发现将SpriteKit与Today Extensions一起使用的唯一可行解决方案是创建SKView并在data = pd.read_csv(filename, header=None).iloc[:, 0].values.tolist() for a, b in itertools.product(data, data): print(a, b) 中显示场景。这是必要的,因为Today Extensions具有与普通应用程序不同的生命周期look at these iOS Widget Gotchas,以获取有关其工作原理的更详细信息。 编辑:设置这些东西的正确方法现在可能是iOS 11中的viewWillAppear,但可能需要进行一些测试。

在创建小部件游戏时要考虑的另一个非常重要的事情是,你有很少的内存(如果我没记错的话,16mb)用来构建你的游戏。您必须不惜一切代价减少内存使用量,否则小部件将崩溃并显示一条消息,告知您无法加载。