草庐IT

ios - 如何为 SKScene 的子类创建初始化程序

我是Swift和Xcode,试图为iOS做一个简单的文本冒险。游戏从具有开始按钮的GameScene开始。当它在按钮上注册点击时,它会移动到第一个PlayScene实例。它有一些文本(场景描述)和两个选项(按钮A和B)。当它注册一个按钮上的点击时,它会移动到相应的PlayScene实例。依此类推,直到到达只有文本和重启按钮的EndScene。我的想法是为PlayScene实现一个初始化程序,它将获取一个场景应该具有的文本以及应该跟随的下一个场景。所以在我的PlayScene.swift中添加了以下内容:letsceneText:StringletnextSceneA:PlayScene

ios - 雪碧/SKScene : How to draw from top-left instead from bottom-left?

据我们所知,SKScene的原点位于左下角。但我尝试从一个包含0和1矩阵的文件中加载一个简单的关卡。虽然0什么都不是,但1表示一堵墙(简单的矩形)。由于文件的内容明显是从左上角到右下角,所以我想在场景中从左上角开始绘制。但是我文件中的第一个角色是在场景的左下角绘制的。我尝试将场景的yScale设置为-1,希望它反转y轴,但这没有用。在这个SKScene上我总是从左上角开始绘制的最干净的方法是什么?我仍然想将我的anchorPoint保持在0.5,0.5。因此从左上角开始绘制将位于x=-widthOfScreen/2和y=heightOfScreen/2 最佳

ios - 将自定义 SKShader 应用于 SKScene,使用 Swift 在 iOS 8 SpriteKit 中对整个渲染场景进行像素化

我正在尝试在SKScene上创建全屏像素化效果。我了解到应该有两种选择来执行此操作:使用GLES2.0的自定义SKShader。使用CoreImage滤镜。我尝试添加一个自定义SKShader,它应该通过像素化来修改整个屏幕。我不确定这是否可能,但来自SKScene(它是SKEffectNode的子类)的文档建议这样做:AnSKEffectNodeobjectrendersitschildrenintoabufferandoptionallyappliesaCoreImagefiltertothisrenderedoutput.可以将SKShader分配给SKScene,如GameSc

ios - Swift 错误 : "Cannot find interface declaration for ' SKScene', 的父类(super class)”

免责声明:我通读了关于SO的类似问题,找不到解决我的问题的方法。我想将SKScene的子类添加到以前未使用SpriteKit的项目中。该项目是ObjC和Swift的混合体。子类是用Swift编写的。我做了什么:通过转到项目->构建阶段->添加了SpriteKit.Framework将二进制文件与库链接。我创建了一个swift类并拥有它继承自SKScene。这是新类:importSpriteKitclassSnowScene:SKScene{}请注意,该类未被代码中的其他任何地方引用。当我编译我的应用程序时,我在标题中收到错误。错误发生在我的-Swift.h文件中,该文件自动导出了新类(

ios - 调试为什么 SKScene init(fileNamed :) returns nil

总长度:问题SKScene子类的init(fileNamed:)返回nil原因:.sks文件在第二次初始化调用时不存在。这个问题在某种程度上与ODR有关实现和/或行为。描述:一款使用SpriteKit构建的游戏。我的SKScene子类的init(fileNamed:)返回nil。我试图理解“为什么?”如何?”调试此问题。我的初始化SKScene子类的代码:///thehierarchy:SKScene->TBTBaseScene->TBTLevelSceneletsceneType:TBTBaseScene.Type=TBTLevelScene.selfletfileName="Lev

ios - 如何将 swift 文件与 SKscene 连接?

我查看了所有帖子、WWDC演讲和youtube视频,但我仍然无法弄清楚如何在不同级别拥有多个SKscenes并将它们与使用Spritekit的游戏中的swift文件连接起来。我想要一个主关卡板,如果你按下SKSpriteNode,我设法打开一个新场景,但是我该如何为这个特定的SKScene实现游戏逻辑?如果这是一个愚蠢的问题,请提前致歉,我已经花了很长时间研究它。 最佳答案 你可以这样做:1)创建.swift文件并创建SKScene的子类转到:Filemenu->NewFile->Source->Swiftfile并创建一个SKSc

ios - 为什么我的 ViewController 在重新打开后不显示另一个 SKScene?

所以现在我正在编写一个游戏,我遇到了一个我没有真正找到解决方案的问题。我会尽力为您描述。所以,为了能够更好的说明我的问题,我画了一张示意图给大家:现在问题来了:我有两个ViewController,一个叫做MenuVc,另一个叫做GameVC。在GameVC中,我有一个SKView,它在调用didMoveToView时显示特定的SKScene,名为GameScene。GameScene有一个didBeginContact方法,然后它将移动到SKView拥有的另一个SKScene,称为GameOverScene,代码如下(图中的Segue1):letreveal=SKTransition

swift - 如何从 SKScene 呈现 UIViewController

通常,当您从另一个viewController呈现一个viewController时:letvc:UIViewController=storyboard.instantiateViewControllerWithIdentifier("viewController")asUIViewController;self.presentViewController(vc,animated:true,completion:nil);我想从SKScene中呈现一个viewController。我还没有找到任何方法来做到这一点。这个问题可能是重复的,但我刚刚在objective-c中找到了对我来说没

ios - 在 SKScene 中转至 UIViewController

在我的GameScene.swift文件中,我正在尝试像这样执行转回到我的菜单ViewController:funcreturnToMainMenu(){varvc:UIViewController=UIViewController()vc=self.view!.window!.rootViewController!vc.performSegueWithIdentifier("menu",sender:vc)}点击节点时运行此方法:overridefunctouchesEnded(touches:NSSet,withEventevent:UIEvent){fortouch:AnyObj

swift - 以编程方式创建 SKScene 子类,没有大小信息?

我正在尝试学习如何制作GameManager类型类,并为我的每个GameScenes制作单独的类......可能是错误的做法,但为了这个问题,请接受这种方式做事。我的GameManager看起来像这样,引用了每个场景,它是静态的:importSpriteKitclassGM{staticletscene2=SecondScene()staticletscene3=ThirdScene()staticlethome=SKScene(fileNamed:"GameScene")}我如何以编程方式创建没有大小信息的SKScene,因为它们位于SKScene的子类中并且不知道View大小是多少