我正在尝试创建一个小部件游戏,是否可以在今日扩展中使用SpriteKit?我一直在搜索类似的帖子,但我只发现了一个与在AppleWatch扩展中使用SpriteKit相关的问题。
答案 0 :(得分:1)
我还在今天的屏幕上处理一些游戏。到目前为止,我已经找到了3个可靠的解决方案:
解决方案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)用来构建你的游戏。您必须不惜一切代价减少内存使用量,否则小部件将崩溃并显示一条消息,告知您无法加载。