草庐IT

ios - SKScene 如何与其容器 SKView 通信?

我在SKView中显示了一个SKScene。我想要一种将信息从场景发送到View的方法,以供以后与Controller一起使用。例如,考虑将ViewController作为SKView的委托(delegate),SKView需要在某个时间通知UIViewController它呈现的场景的一部分被点击。 最佳答案 SKScene有一个方便的实例成员.view来处理这种情况。要访问标准的SKView方法和属性,您可以像这样使用它:self.view?.addGestureRecognizer(pinchGestureRecognizer

ios - SpriteKit SKScene size.width 说 1024 docs 说它应该是 768

我将应用程序设置为仅纵向。当我在初始SKScene上println(self.size.width)时,它会给我1024。文档说“所以,场景初始化为1024的高度和768的宽度......”这里:https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Nodes/Nodes.html.为什么我的宽度是1024?宽度是完全基于手机的旋转还是始终相同? 最佳答案 是的,宽度可以基于设备的方向,但如果您只

ios - 我如何正确检测接触和碰撞? swift iOS SKScene

问题是我无法检测到碰撞//或以我在互联网上找到的任何方式联系这是我的代码:我的口罩声明:privateletballCategory:UInt32=0x1球洞和球的加入:funcaddHole(#size:CGSize){letactionMoveDown=SKAction.moveToY(CGRectGetMidY(self.frame)-500,duration:4.7)lethole=shapedHoles()letUT=UTIL()varposition:CGFloatletrandomPosition=UT.randomNumberWith(Min:1,Max:3)switc

ios - 使用带有 SkScene 的 NSNotificationCenter 到 UIViewController

我正在使用SpriteKit使用Swift制作游戏。我正在使用界面生成器来定位我所有的按钮(菜单、重试等),这样我就可以使用自动布局。然后,我在游戏结束函数中使用NSNotificationCenter在SKScene中显示这些按钮。我可以毫无问题地使用NSNotificationCenter在SKScene中显示UIKit内容。这是我的问题,我会尽力解释。当您游戏结束时,会显示一个名为retry的UIButton。我在SKScene中为重试函数设置了一个NSNotificationCenter观察器,并在IBAction中为viewController中的按钮调用了postNotif

swift - 在 Firebase 调用中模糊使用下标

我正在尝试进行firebase读取,我正在尝试从firebase读取一个整数,但由于某种原因,这不起作用:funcfirebaseCall(){ref.observeEventType(.Value,withBlock:{snapshotinprint(snapshot.value)letpeople=snapshot.value["people"]as!Intprint("Peopleis\(people)")//lettime=snapshot.value["time"]as!Intletdate=NSDate()letcalendar=NSCalendar.currentCale

swift - 场景之间的 SpriteKit 过渡无需重置游戏

如何在不重置游戏的情况下在场景之间转换,因为didMoveToView()被调用并重新初始化了我的所有实例变量。例如我有一个游戏场景和一个商店场景。当我从我的商店场景过渡到我的游戏时,游戏会重置。有什么方法可以防止这种情况发生,或者如何在场景之间转换时保持游戏的相同状态? 最佳答案 您有很多选项可以在游戏场景中保持持久状态。我列出了我使用过的两种方法。选项A:保持对场景的引用当场景换成新场景时,场景通常会从内存中完全删除。如果您在其他地方持有场景对象的引用,并提供该引用,则不会丢失任何数据。为了随着时间的推移保持引用(并在需要时再次

swift - 将 SKReferenceNode/SKScene 添加到 SpriteKit 中的另一个 SKScene

我想在我的主要GameScene中添加一个SKScene。SKReferenceNode似乎是一个很好的解决方案。我有:-GameScene.sks(主场景)-Countdown.sks(添加到GameScene的场景)-Countdown.swift(自定义类,如何初始化它?SKScene?SKReferenceNode?SKNode)我不知道如何使用我的倒计时类以编程方式添加我的倒计时。我试过:letpath=Bundle.main.path(forResource:"Countdown",ofType:"sks")letcd=SKReferenceNode(url:NSURL(f

swift - 场景大小内的节点位置

在我的SKScene中,我正在制作一个简单的太空射击游戏。无论在哪个iPhone上玩游戏,我如何才能确保我的敌人总是出现在屏幕尺寸内?换句话说,我如何计算场景大小的最大和最小X坐标,更重要的是,我如何根据运行游戏的iPhone了解当前场景大小? 最佳答案 不要根据iPhone型号调整场景大小,让Sprite-kit做这种工作:scene.scaleMode=SKSceneScaleMode.ResizeFillThesceneisnotscaledtomatchtheview.Instead,thesceneisautomatica

ios - 我怎样才能重新启动 SKScene?

我正在创建一个游戏。当游戏结束时,我会显示一个按钮“再玩一次”,理想情况下,它应该只是重新加载场景。varviewSize=currentScene.view?.bounds.sizeletsceneG=Level1(size:viewSize!)currentScene.view?.presentScene(sceneG)但不幸的是,我收到了这个错误:AttempedtoaddaSKNodewhichalreadyhasaparent:因为有些节点已经存在于场景中,无法再次添加。有没有办法在再次呈现场景之前重新加载场景或删除所有节点?谢谢根据要求,这是Level1类:importSp

ios - 将变量从 UIViewController 传递到 SK Scene

我正在使用Swift2在XCode7中制作游戏。我有一个变量,我想从开始屏幕(它是一个UIViewController)传递到游戏场景(它是一个SKScene)。我希望玩家在UIView中选择一个角色并在SKScene中使用它。我还希望SKScene中的分数显示在作为UIView的游戏结束屏幕中。我看过在两个UIViewController之间和两个SKScenes之间传递数据的教程,但它们都不适用于这种情况。如何将变量从UIViewController传递到SKScene(反之亦然)? 最佳答案 如果您还没有找到答案,我确实找到了