刚开始使用Swift在iOS上使用SpriteKit。我有一个教程中的“Breakout”游戏,我想在每次球发射前实现倒计时,方法是在屏幕中间放置一个SKLabel,它在移除自身和游戏开始之前从5倒计时到1。倒计时进行时,您可以看到完整的游戏屏幕,包括墙壁、固定球等。我不知道在游戏循环的哪个位置执行此操作。如果我在didMoveToView中进行倒计时(我在其中创建墙并初始化球和桨),我永远不会看到它,但我会在日志中看到我的调试消息。我猜didMoveToView在SKScene出现之前被调用。我尝试在第一次调用“更新”时使用标志来调用倒计时功能,但我再次看到倒计时在屏幕上出现任何内容
对于我的SpriteKit游戏,我为我的SKSpriteNode使用单个pdf矢量图,而不是为游戏中每个实体的所有设备分辨率使用许多pngSprite。不必太担心游戏图形的好处有很大的帮助,但我的问题很简单,使用矢量图形在性能方面会是个坏主意吗? 最佳答案 等等,您没有使用PDF作为SKSpriteNode的纹理您可能正在使用PDF进入XcodeAssetCatalog,对吧?在这种情况下,首先这是一个非常好的主意,它不会影响您游戏的性能。事实上,当您将PDF图像加载到XcodeAssets中(并将ScaleFactors设置为Si
我想在我的主要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
我试图让一个SKSpriteNode在屏幕上弹跳,但是当我运行它时,我得到一个错误(在第一行):cannotinvoke'runAction'withanargumentoftype'SKAction!'我不知道是什么原因造成的。我在下面粘贴了整个runAction代码:self.runAction(SKAction.sequence([SKAction.repeatAction(SKAction.sequence([{self.updatePath()},SKAction.followPath(path.CGPath,duration:3.0)]),count:numberOfBou
我将SKSpritenode(在Swift中)子类化以创建彩色block,然后可以在场景中拖动这些block。子类是SoundNode。importSpriteKitclassSoundNode:SKSpriteNode{init(){super.init(texture:nil,color:UIColor.blue,size:CGSize(width:100,height:100))self.isUserInteractionEnabled=true}requiredinit?(coderaDecoder:NSCoder){fatalError("init(coder:)hasnot
我正在我的游戏中实现横幅广告。在@erdekhayser的帮助下,横幅成功显示。但是当我点击横幅时,游戏不会暂停。代码如下所示:importUIKitimportSpriteKitimportiAdimportFoundationclassGameViewController:UIViewController,ADBannerViewDelegate{vargameScene=GameScene()varadBannerView=ADBannerView(frame:CGRect.zeroRect)funcloadAds(){adBannerView.center=CGPoint(x:
我正在尝试像这样在Xcode6Playground中使用SpriteKit:importUIKitimportSpriteKitimportXCPlaygroundvarspriteView=SKView(frame:CGRectMake(0,0,1334,650))spriteView.backgroundColor=UIColor(red:0.167,green:0.165,blue:0.164,alpha:1.0)letrootScene=SKScene()letrect=SKShapeNode(rect:CGRectMake(10,10,100,100))rect.fillCo
我正在用SpriteKit制作游戏。对于将要在我的场景中使用的不同节点,我有不同的类。我需要让我的游戏具有通用性,以便它适应每个屏幕。定义我将在不同类和主场景中使用的不同变量的最佳方法是什么。 最佳答案 然后初始化您的节点,您可以创建您的worldSKNode参数,然后访问您的world.frame.size。classNodeClass:SKSpriteNode{init(world:SKNode){super.init(texture:nil,color:UIColor.clearColor(),size:CGSizeMake(
我有一个应用程序,大盒子落在小红色盒子的顶部。我想知道红色小块何时达到一定重量(Xblock放在它上面)。我找不到红色block的权重属性。有什么建议么?编辑:只是为了澄清。从顶部掉落的盒子大小随机,从随机位置掉落。所以并没有真正的方法来跟踪落在红色方block顶部的东西。我需要一些方法来测量施加到红色block上的向下力 最佳答案 您可以通过以下方式计算每个节点的权重,然后将它们相加。redBox.PhysicsBody?.mass 关于swift-SpriteKit-获取SKSpri
我知道我可以在GameScene.swift中使用以下内容来引用我在关卡编辑器中创建的Sprite:ball=childNode(withName:"ball")as?SKSpriteNode如果我想从Ball类中引用那个球怎么办?以下是我认为可行的方法。我错了。在关卡编辑器中,我为球指定了自定义类Ball。1.我在GameScene.sks中创建了一个球Sprite并为其分配了Ball的自定义类:这是我自定义的Ball类。(你可以忽略这些内容,因为它不起作用。)classBall:SKSpriteNode{init(){letsize=CGSize(width:35,height:3