问题标签 [skscene]
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.
sprite-kit - 如何将 CIPixellate Core Image Filter 添加到 Sprite Kit 场景中?
如何将 CIPixellate Core Image Filter 添加到 Sprite Kit 场景中?
我有一个 SpriteKit 场景,它是 SKScene 或其子类。我想在场景中添加一个核心图像过滤器。特别是一个 CIPixellate 过滤器,所以我可以免费拥有 8 位游戏天堂。
我怎么做?
ios - 在游戏结束过渡时为 spritekitgame 添加声音
我用精灵套件做了一个游戏。现在我正在尝试实现一些声音效果。我设法做了一些声音效果,但我陷入了每当你输球时我必须实现声音的部分。因此,当物体接触地面时,您会失败。但是当这种情况发生时,它会过渡到另一个场景。所以我希望在过渡到另一个场景之前播放游戏结束声音。这就是我得到的:
Myscene.h
Myscene.m
}
ios - 错误:其视图不在窗口层次结构中。精灵包
我会尽力解释这一点。好的,我在 xcode5 中使用 SpriteKit。在 Myscene.mi 中有一个方法叫做:
然后在我的 NSTimeintervalUpdate 方法中,我有一个代码说
所有这些代码都会从情节提要中调出我想要的视图控制器,就像它应该没有问题一样,但是在这个视图控制器中,它有一个链接回游戏的按钮。当您单击按钮时,它会按原样返回游戏。好吧,在游戏过程中,它并没有像第一次那样以“3”的分数返回我的 ViewController,它只是继续计数并在日志中提供以下错误消息:
我的意图是拥有我的游戏(Myscene.m),当游戏结束时,是拥有一个游戏结束屏幕(ViewController)。然后从这个视图控制器中,我希望它有一个再次播放按钮,该按钮链接回 Myscene.m(我只是通过制作按钮和控件并拖动到处理我的 SKScene 的视图控制器来完成)并继续重复过程但是它只会执行一次此过程,然后无法循环返回,而是出现上述错误。
任何帮助表示感谢!
ios - 在 Sprite Kit 中的场景之间导航?
假设我从一个场景开始initialScene
。这个场景包含几个按钮。当用户在此场景中点击按钮 A 时,我将呈现sceneA
. 所以我的代码看起来像这样:
我的第一个问题是,当sceneA
从 中呈现的实例时initialScene
,它是堆叠在initialScene
实例之上还是替换它?当出现新场景时,实例是否initialScene
在内存中被释放?
我问这个是因为sceneA
会有一个后退按钮,当点击它时,用户会返回到初始场景。我可以只创建一个 inside 的新实例initialScene
并sceneA
呈现它,还是会导致相同场景的多个实例堆叠在一起?基本上,我可以这样做sceneA
吗?:
还是有更好的方法来做到这一点?请让我知道是否有任何方法可以进一步澄清这一点。
warnings - UIAlertView warning when dismissing
I'm creating an alert in the following manner:
Works fine. However when I click the 'OK' button to dismiss the alert, I get this:
Warning: Attempt to dismiss from view controller <_UIAlertShimPresentingViewController: 0x16ea2230> while a presentation or dismiss is in progress!
Some context:
- The alert is created in didMoveToView(view: SKView!) function of an SKScene.
- This is in Xcode 6 beta 3.
- my example is swift but this also happens from Objective-C
Any ideas why this warning might be occurring? I don't want to ignore it in case it turns into a fatal error in a future version of iOS.
UPDATE
我还应该补充一点,当警报出现时,当我选择 Debug -> View Debugging -> Capture View Hierarchy 时,警报不会显示在视图的 3d 视图中。我想知道这是否是我做错了什么的症状。
uiviewcontroller - 如何关闭/删除 SKScene 和视图控制器?
我有 3 个视图控制器。VC1(初始和主屏幕)、VC2(SKScene 和游戏)、VC3(UIViewController 和游戏结束屏幕)。我的问题是当我从 VC1 开始,然后转到 VC2,然后移动到 VC3,然后回到 VC1,它们都堆叠在一起,所以看起来像这样。VC1 - VC2 - VC3 - VC1 - VC2 - VC3 - VC1 - VC2 - VC3 - VC1 - VC2 - VC3,所以最终内存增加,游戏速度急剧下降,最终崩溃。当我移动到 VC2 时,我需要以某种方式释放 VC1,然后在移动到 VC3 时释放 VC2,等等。每次我围绕 VC 进行循环时,我希望它们重新启动,就好像它们以前从未存在过一样。我将提供我如何在所有人之间转移的代码。顺便说一句,在 xcode5 中使用精灵套件。VC = 视图控制器
VC1内部:
VC2内部:
在连接到 VC2 的 SKScene 内部:
VC3内部:
VC1 是一个 UIViewController,VC2 是一个 ViewController,它呈现一个 SKScene,这是我的实际游戏,VC3 是一个 UIViewController。
所以只是重申一下。当我从 VC 移动到 VC 时,它们都相互重叠,增加了内存和 CPU,并降低了游戏的 FPS(每秒帧数),直到最终崩溃。我被告知我需要关闭我的 VC 或从内存中释放它们来解决这个问题,如果这是正确的解决方案,那么我该怎么做呢?如果您有正确的解决方案,请提供一些代码以提供帮助。任何帮助表示赞赏!
ios - 在 SpriteKit 中呈现场景而不丢弃之前的场景?
我的情况是我有一个GameMenuScene
,在用户选择一个级别后,我想呈现LevelScene
. 但我不想GameMenuScene
丢弃以前的,因为LevelScene
它实际上是一个@property
ofGameMenuScene
并且用户是否完成关卡都将保存为一个@property
of LevelScene
,GameMenuScene
用户完成或退出关卡后应该能够访问它。如果我简单地使用presentScene:transition
,则将GameMenuScene
被丢弃,并且信息无法传回。
我的问题:有没有办法在不丢弃前一个的情况下堆叠或推送场景(最好使用过渡动画)?我在 SKScene 的 Apple 文档中找不到用于此特定目的的方法。
注意:另一个 StackOverflow 对类似问题的回答建议创建一个新UIViewController
的,LevelScene
在其中呈现,然后以UIViewController
模态方式呈现。但我希望 Apple 文档中有一个现有的方法,我错过了以模态方式呈现场景本身的场景,而无需创建UIVIewControllers
.
ios - 将 CIFilter 与 SKScene 合成
我试图在图像上使用颜色减淡混合模式(CIFilter)并将其与我的整个场景(这是一个 SKScene 节点)合成。不幸的是,CIColorDodgeBlendMode 只将 CIImage 作为背景的输入。有没有可能的解决方法?
基本上我想要相同的结果,就像在具有 2 层的 Photoshop 中一样,并且上层应用了颜色减淡混合模式。
这是我的代码('self' 将是 SKScene 节点):
ios - 将 UIScrollView 添加到 SkScene/SkView
TL;DR:我有一个 SpriteKit 游戏,它在 4' 屏幕上看起来很棒,需要快速修复(比如使用滚动视图来包含 SKScene)3.5' 屏幕而无需再次编码所有内容,谢谢!
我目前完成了一个我正在使用 SpriteKit 的游戏,我打算将它上传到 AppStore,但问题是:我设计的游戏可以在 4 英寸屏幕设备上完美运行,所以在 3.5 中它看起来很糟糕,我担心苹果会把游戏还给我来纠正这个问题。因此,我考虑了以下选项:
- 使用 ScrollView 通过以下方法呈现场景:
`
`
但是这个方法不起作用,它在尝试将scrollView添加到视图时出现异常。也许我在这里做错了什么?
2.在每一行代码中使用条件来检查设备大小并正确设置图像:这可能是要走的路,但我真的希望有另一种方法,因为主游戏区域依赖于 568 像素的“棋盘”很长,它也可能完全搞乱游戏逻辑。(是的,也许计划不好。
3.在这个答案中使用一些东西:https ://stackoverflow.com/a/19096256/2328918但我认为某些设置也可能会弄乱我的代码。
4.还尝试更改场景的 scaleMode 但似乎也不起作用。
感谢您的建议和提示,我正在寻找“简短”的答案,因为在游戏中添加 Scrollview 只会让 3.5 个用户“玩”游戏,但不能真正解决问题,但我真的很喜欢将其作为 1.0 版发布,然后致力于改善 3.5 屏幕的体验。
time - 您如何获得“当前系统时间”?
的文档SKScene -update
如下:
究竟什么是“当前系统时间”,除了 via ,我怎么能得到它SKScene -update
?
我试过CFAbsoluteTimeGetCurrent()
了,但显然
返回当前系统绝对时间[,即] 相对于绝对参考日期 2001 年 1 月 1 日 00:00:00 GMT 的秒数。
并且与“当前系统时间”不同,根据我的测试,它的值比“当前绝对时间”小几个数量级。