问题标签 [skview]

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 投票
1 回答
138 浏览

ios - iPhone 5s SpriteKit 画怪

我了解 iPhone 5s 的像素分辨率为 640 x 1136,点分辨率为 320 x 568(用于向后兼容非 Retina 设备)。

当我使用 SpriteKit 时,问题/困惑/奇怪似乎出现了。例子:

我正在从左下角(0, 0)到右上角(宽度,高度)画一条线。结果是这条线几乎画了一半。事实上,当我打印出屏幕尺寸时,它应该是 320 x 568。所以我决定从 (0, 0) 绘制到 (width * 2, height * 2)。当然,这打印出 640 x 1136。

所以奇怪的是:即使我是从一个角到另一个角的对角线绘制的,但实际上并不是从一个角到另一个角绘制的。

笔记:

有什么想法吗? 在此处输入图像描述

0 投票
2 回答
627 浏览

memory-leaks - 集合视图单元格中的 SpriteKit 内存泄漏

我正在使用 SpriteKit 在 UICollectionView 中的 UICollectionViewCell 中制作动画。该场景有一个我正在使用 SKAction 制作动画的精灵。每个单元格的 contentView 都有自己的 SKView/SKScene。我遇到了内存泄漏。当我在 Xcode 6.3 的分配工具中查看这个时,我看到每个新单元格都有一对 > 1MB 的分配,一个归因于“SKView set_context”,另一个归因于 allocateWCMemory GLEngine”。

在每个 UICollectionViewCell 中,它都是非常标准的东西。我正在创建其他(与动画无关的)UIView 子视图并将它们添加到 contentView。

一件奇怪且可能相关的事情是我没有得到一致调用的 UICollectionViewCell 的 deinit 方法。

想法?

更新:

1)这似乎与动画直接相关,与集合视图无关。如果我只是关闭代码的动画部分,我似乎没有得到内存泄漏。或者至少没有那么多内存泄漏。在这种情况下,SKScene/SKView 仍然被分配(每个集合视图单元格),但我只是不为精灵设置动画。我还应该补充一点,在这种情况下,禁用动画后,我的所有解除分配断点都会命中它们应该命中的位置(例如,UICollectionViewCell deinit 方法)。

2) 现在我已经重新添加了动画,但我只循环了一次。我一直在做重复的动画(相同的动画,只是重复,用计时器控制)。当我只做一次并停止时,没有内存泄漏。所以,这个问题似乎源于我重复的动画。

0 投票
1 回答
236 浏览

macos - 为什么在 SKView 上设置 frameInterval 不起作用?

我正在尝试将帧速率降低到最大 30 FPS。官方文档说使用:

我通读了所有可用的文档以及在 stackoverflow 或其他页面/博客/等中提出的所有类似问题。我尝试了很多方式,但无论我在哪里尝试设置属性,它都不会影响 FPS。

我没有使用除 SpriteKit 之外的任何其他计时机制。我正在根据文档和 Stackoverflow 上的答案进行相应的设置。

我什至启动了 Xcode 提供的基本 SpriteKit 模板并尝试设置帧速率属性,但即使这样也没有成功。

有没有人遇到任何相似之处?有没有其他方法可以降低最大 fps?我还能尝试什么来降低 FPS?

顺便说一句:我正在使用 OS X 并拥有第一代 Retina Macbook Pro - 也许是硬件问题?

编辑:

我没有覆盖该-(void)update:方法-仅-(void)didSimulatePhysics

这就是我在 Interface Builder 中设置的 NSViewController 子类中所做的。是我的子类self.spriteKitView的一个出口NSViewNSViewController

我什至尝试将它放入我的 SKScene 子类中,将其作为 Interface Builder 中的用户属性附加到 SKView。

我现在怎么不工作了?在我的游戏和 Xcode 模板中,调试输出都显示为 60 FPS。即使减少skView.frameInterval = 4动画也能保持流畅。

0 投票
2 回答
1607 浏览

ios - 将 UIView 转换为 SKView 时,线程 1 信号 SIGABRT 崩溃

我在 GameViewController.swift 中有以下代码:

它崩溃并let currentView = self.view as! SKView.显示此消息:

无法将“UIView”(0x1079b7e88)类型的值转换为“SKView”(0x106b79718)

提出了一个类似的问题,但他们的解决方案在故事板中。我没有故事板,只有代码。

0 投票
1 回答
329 浏览

sprite-kit - 在 Spritekit 中取消暂停视图时 fps 显着下降

在 SpriteKit 中取消暂停视图时,我注意到 fps 显着下降(帧率下降 5-10fps)。我用空项目(Spritekit 游戏模板)尝试了这个。这是代码:

如果我暂停场景,一切都会按预期运行,帧数稳定在 60fps。我正在设备上对此进行测试。

这可能会在取消暂停时导致游戏出现问题,因为某些帧会被跳过......有什么想法吗?

0 投票
0 回答
90 浏览

swift - SWIFT:立即更新屏幕 (SKView)

我的应用程序需要大量时间进行初始化。所以我为用户创建了一个屏幕,然后我想把它展示给他,然后我可以继续计算。但我不知道如何简单地开始屏幕更新。如果该过程结束,它会自动完成。(但为时已晚!):-)

0 投票
1 回答
568 浏览

objective-c - iOS:UIView 与 SKView

我正在创建一个游戏,其中涉及单独级别内的迷你游戏(如图所示)。我开始使用UIViewController,但是一旦某些关卡需要动画和重力,我就想切换到SKView,因为手工制作所有这些动画效率不高。我已经使用 创建了菜单和一些关卡包UIViewController,此时将所有内容更改为 SKView 会很麻烦。考虑到这一点,创建视图的最佳实践是什么?可以说,UIViewController和的最佳“组合”是SKView什么?将一个用于主菜单而另一个用于游戏会更好吗?感谢所有帮助!

映射视图

0 投票
2 回答
80 浏览

swift - 用 SKView 改变视图?

我想知道当角色在游戏结束时与敌人发生碰撞时如何切换到场景。我在 main.storyboard 下做了一个场景,我想知道如何通过代码连接它,我只知道如何使用按钮连接它,但这不是我想要的,因为你死时不会按下按钮带你到游戏结束的场景。

更新:

当检测到碰撞时,这就是我的 gameOver 所拥有的。是的,它确实将我带到了一个新场景,但不是我在 main.storyboard 中制作的场景。

0 投票
1 回答
480 浏览

swift - 如何从 SKScene 获取和更改我的视图控制器中的变量

好的,这是代码

这就是我想要从我的 SKScene 中做的事情

所以基本上发生的事情是“coolbool”被初始化为假。直到 thing1() 被调用导致变量“coolbool”改变。我在过渡之后立即确认其更改。然而,在转换之后(到同一个场景(如果布尔为真,我试图让它看起来不同))如果你问值是什么,它说它是假的......即使我只是将它设置为真.

无论如何,我认为我做错了什么,他们是更好的方法吗???万一你想要它是过渡功能

0 投票
0 回答
251 浏览

swift - 关于 SKScene 中容器的奇怪警告

我在控制台上有一个奇怪的警告:

2015-09-11 19:13:19.966 myApp[2171:693733] |错误| 从 name:'myScene' frame:{{-160, -240}, {320, 480}} 一路向上容器链,但找不到任何属于 > 的有序子级之一的容器。

编译期间没有警告,应用程序运行正常,并且此消息不时出现。

更新 1

还在 Xcode 7 和 Swift2 上