草庐IT

ios - 关闭 SKScene 后,内存仍然很高

我使用dispatch_onceNSObject来创建数据指针。因此,所有游戏Assets指针都是在主视图Controller出现时创建的。为了玩游戏,用户在UIViewController上点击对应于特定级别的UIButton。让我称之为LevelSelectionController。游戏结束时,用户将点击一个标签(SKLabel)。并且所有操作和节点都将被删除。[selfremoveAllActions];[selfremoveAllChildren];[selfremoveFromParent];此外,特定级别的SKScene子类将用户返回到LevelSelectionCont

ios - 在另一个半透明 SKScene 下显示暂停的 SKScene

我目前正在暂停一个包含游戏玩法的SKScene,并使用self.view?.presentScene()呈现另一个包含其上方菜单的SKScene。菜单场景的背景是透明的,在过渡过程中,我可以正常看到下方暂停的游戏。但是当转换完成时,背景突然变黑,这让我觉得游戏场景已经消失了。有没有办法在我显示菜单时保留暂停的游戏? 最佳答案 SKView一次只能呈现一个场景。但是,您仍然可以构建您的游戏以将菜单封装为它自己的“场景”——只是不能是SKScene。使菜单成为一个节点,并将其添加到游戏场景中。(如果您需要在显示菜单时在游戏场景中设置pa

swift - 在 GameScene(SKScene) 中显示 AdMob 插页式广告

在我的gameviewcontroller中,我可以像这样呈现插页式广告:varrequest=GADRequest()request.testDevices=[GAD_SIMULATOR_ID];varinterstit=GADInterstitial()interstit=interstit2interstit.adUnitID="ca-app-pub-3940256099942544/2934735716"interstit.loadRequest(request)println("reqloadedadmob")ifinterstit.isReady{interstit.pre

ios - 在 GameViewController 中连接一个 UIButton 以在 SKScene (Swift) 中工作

我能够通过硬编码在我的GameScene.swift(包含我的SKScene)中的屏幕上添加一个按钮:银行代码:rightControlPad=UIButton(frame:CGRectMake(4,580,200,150))rightControlPad.backgroundColor=UIColor.greenColor()rightControlPad.setTitle("Jump",forState:UIControlState.Normal)rightControlPad.addTarget(self,action:"buttonAction:",forControlEven

swift - SKScene 转换中的 SKShapeNode 问题

当我使用SKShapeNodes而不是SKSpriteNodes时,我的游戏菜单出现了这个奇怪的问题。菜单基本上是SKNode的子类,只是有不同的SkSpriteNodes作为按钮,它非常简单。最近我将SKSpriteNode按钮更改为SKShapeNodes,因为它给了我一些额外的好处(圆角、笔触等)。但是,当显示游戏菜单时,问题现在就开始了。基本上,如果在我的游戏菜单中按下“homeScreen/MainMenu”按钮,场景转换就会发生到另一个SKScene。问题是,当场景转换完成后,我仍然可以短暂地看到SKShapeNode按钮大约1-2秒,然后它们消失了。有时它只是按钮,有时它

ios - SKScene 和内存问题

我们的应用程序(iOS9.1、Xcode7.1)使用SpriteKit并因“因内存问题而终止”而崩溃。我开始删除越来越多的代码,最后发现创建和丢弃普通SKScene实例的简单操作会耗尽内存。事实上,就像这样简单:whiletrue{_=SKScene(size:CGSize(width:100.0,height:100.0))}最终会导致应用程序因同样的内存问题而崩溃。我在调试导航器中观察它,“内存”值swift上升,然后应用程序崩溃。使用不同的类,例如:whiletrue{_=[Int](count:1000,repeatedValue:0)}会占用大量CPU,但实例会被干净地释放并

swift - 如何在 Swift Playgrounds 中使用带有纹理的 SKNode 设置 SKScene?

我尝试将模板代码从SpriteKit项目复制到playground中,但当我呈现场景时,我得到的只是一个灰色屏幕。我需要创建一个SKScene吗?如果需要,我该如何将它分配给我正在使用的场景类。以下是我创建和呈现场景的代码:@objcfuncgoToGameScene(){print("GameViewLoaded")sceneView=SKView(frame:CGRect(x:0,y:0,width:666,height:500))sceneView.backgroundColor=UIColor.blackPlaygroundPage.current.liveView=scene

swift - 无法在 Swift playground 中向 SKScene 添加滑动识别器?

好吧,我对swiftplayground的工作原理还是有点陌生​​,但我正在尝试将Swift3中的滑动手势识别器添加到我的swiftplayground。按照这个http://www.spritekitlessons.com/gesture-recognizer-with-sprite-kit-and-swift/我现在有:funcswipedRight(sender:UISwipeGestureRecognizer){print("swipedright")}funcswipedLeft(sender:UISwipeGestureRecognizer){print("swipedle

swift - 以编程方式在 SKScene 和 View Controller 之间切换?

我有两个block,当它们接触时,会播放动画,然后将玩家送回菜单屏幕。但是,因为玩家控制方block的位置……等等……我无法使用按钮或计时器来确定场景。当我的两个节点(球和桨)接触时,我想知道如何让我的场景(GameScene)进入我的ViewController(LoginViewController)。这是我已经为两次接触编写的程序。funcdidBegin(_contact:SKPhysicsContact){//1varfirstBody:SKPhysicsBodyvarsecondBody:SKPhysicsBody//2ifcontact.bodyA.categoryBit

ios - 需要帮助为 SKScene 制定自定义协议(protocol)

我没有制作自己的协议(protocol)的经验,我正在尝试制作一个,以便我可以将GameControllerdpad值发送到SKScene。一切都已连接并正确构建,但我的SKScene没有收到任何信息。这是我的主视图Controller:importGameControllerimport...protocolGetsDpadFromController{funcdpadValueUpdate(dpadValue:CGPoint)}classGameViewController:UIViewController{varjoystickController:GCController!va