问题标签 [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.
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。
所以奇怪的是:即使我是从一个角到另一个角的对角线绘制的,但实际上并不是从一个角到另一个角绘制的。
笔记:
有什么想法吗?
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) 现在我已经重新添加了动画,但我只循环了一次。我一直在做重复的动画(相同的动画,只是重复,用计时器控制)。当我只做一次并停止时,没有内存泄漏。所以,这个问题似乎源于我重复的动画。
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
的一个出口NSView
NSViewController
我什至尝试将它放入我的 SKScene 子类中,将其作为 Interface Builder 中的用户属性附加到 SKView。
我现在怎么不工作了?在我的游戏和 Xcode 模板中,调试输出都显示为 60 FPS。即使减少skView.frameInterval = 4
动画也能保持流畅。
ios - 将 UIView 转换为 SKView 时,线程 1 信号 SIGABRT 崩溃
我在 GameViewController.swift 中有以下代码:
它崩溃并let currentView = self.view as! SKView.
显示此消息:
无法将“UIView”(0x1079b7e88)类型的值转换为“SKView”(0x106b79718)
提出了一个类似的问题,但他们的解决方案在故事板中。我没有故事板,只有代码。
sprite-kit - 在 Spritekit 中取消暂停视图时 fps 显着下降
在 SpriteKit 中取消暂停视图时,我注意到 fps 显着下降(帧率下降 5-10fps)。我用空项目(Spritekit 游戏模板)尝试了这个。这是代码:
如果我暂停场景,一切都会按预期运行,帧数稳定在 60fps。我正在设备上对此进行测试。
这可能会在取消暂停时导致游戏出现问题,因为某些帧会被跳过......有什么想法吗?
swift - SWIFT:立即更新屏幕 (SKView)
我的应用程序需要大量时间进行初始化。所以我为用户创建了一个屏幕,然后我想把它展示给他,然后我可以继续计算。但我不知道如何简单地开始屏幕更新。如果该过程结束,它会自动完成。(但为时已晚!):-)
swift - 用 SKView 改变视图?
我想知道当角色在游戏结束时与敌人发生碰撞时如何切换到场景。我在 main.storyboard 下做了一个场景,我想知道如何通过代码连接它,我只知道如何使用按钮连接它,但这不是我想要的,因为你死时不会按下按钮带你到游戏结束的场景。
更新:
当检测到碰撞时,这就是我的 gameOver 所拥有的。是的,它确实将我带到了一个新场景,但不是我在 main.storyboard 中制作的场景。
swift - 如何从 SKScene 获取和更改我的视图控制器中的变量
好的,这是代码
这就是我想要从我的 SKScene 中做的事情
所以基本上发生的事情是“coolbool”被初始化为假。直到 thing1() 被调用导致变量“coolbool”改变。我在过渡之后立即确认其更改。然而,在转换之后(到同一个场景(如果布尔为真,我试图让它看起来不同))如果你问值是什么,它说它是假的......即使我只是将它设置为真.
无论如何,我认为我做错了什么,他们是更好的方法吗???万一你想要它是过渡功能
swift - 关于 SKScene 中容器的奇怪警告
我在控制台上有一个奇怪的警告:
2015-09-11 19:13:19.966 myApp[2171:693733] |错误| 从 name:'myScene' frame:{{-160, -240}, {320, 480}} 一路向上容器链,但找不到任何属于 > 的有序子级之一的容器。
编译期间没有警告,应用程序运行正常,并且此消息不时出现。
更新 1
还在 Xcode 7 和 Swift2 上