我到处都找过了,但没有任何效果。以为我会自己问这个问题。我正在使用SpriteKit在iOS9中创建一个小游戏。我的游戏将有左右Controller按钮来移动玩家Sprite。我按如下方式为方向键添加SKSpriteNodes在主场景的顶部我放了:privatevarleftDirectionalPad=SKSpriteNode(imageNamed:"left")privatevarrightDirectionalPad=SKSpriteNode(imageNamed:"right")然后我运行一个名为prepareDirectionalPads的方法funcprepareDirec
我从SKSpriteNode继承了以下对象classPlayingCard:SKSpriteNode{varsuit:Int=0varrank:Int=0varvisible:Bool=falseinit(){super.init(texture:SKTexture(imageNamed:"card.png"),color:NSColor.blackColor(),size:SKTexture(imageNamed:"card.png").size())}requiredinit?(coderaDecoder:NSCoder){fatalError("init(coder:)hasno
我有一个正常运行的SKSpriteNode。但是当我添加一个UIImage时,SKSpriteNode会隐藏在UIImage后面。我一直在试图找出原因,但我遇到了一些麻烦,似乎无法弄清楚我缺少什么以允许SKSSpriteNode出现在UI背景图像的顶部,而不是在它后面看不见的地方。任何帮助将不胜感激!importUIKitimportSpriteKitclassGameViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()ifletscene=GameScene(fileNamed:"G
所以我是SpriteKit和Swift的新手,我并不真正理解节点背后的概念(或者sprite-kit中与此相关的任何内容)。我请求你向我解释节点的概念。我更习惯于为每个节点设置一个不同的变量实例(例如创建一个数组),这让我可以非常具体地引用任何单个节点。然而,在spritekit中,情况似乎并非如此,因为您只需制作一次并使用addChild调用它的多个实例。(比我一直在做的好多了...)这有点让我感到困惑,因为我主要不明白如何针对这些测试场景或其他东西或单独引用一个场景。例如,我试图使用removeFromParent()从场景中移除一个对象,但我不知道如何实现类似的东西:if(ene
我最近一直在更新我的游戏以使用更多的值类型。在某些情况下,我对weak和unowned仍然不是100%有信心,所以我采用结构方式来避免强引用循环。根据apples较新的主题演讲,值类型似乎是大多数情况下的方法。我从未见过在spriteKit游戏中使用结构来渲染Sprite的示例,所以我想知道有什么缺点。我知道它们是复制的而不是引用的,但对于我的使用来说它似乎有效。所以基本上我在做这个的时候有什么需要注意的地方structFlag{letpost:SKSpriteNodeletflag:SKSpriteNodeinit(postImage:String,flagImage:String)
我正在使用Swift和SpriteKit开发游戏。我希望背景在一定分数下发生变化。这是代码:classGameScene:SKScene{varbg=SKSpriteNode()overridefuncdidMoveToView(view:SKView){makeBg()}funcmakeBg(){letbgTexture=SKTexture(imageNamed:"img/bg.png")letmoveBg=SKAction.moveByX(-bgTexture.size().width,y:0,duration:9)letreplaceBg=SKAction.moveByX(bgT
我一直在尝试使用方便的初始值设定项来覆盖SKSpriteNode初始值设定项,该初始值设定项允许我实例化具有一些额外属性的SKSpriteNode子项,但每次尝试时,我都会收到编译器错误。这是我理解的两大规则。规则:每个便利构造器都必须引用指定的构造器,无论是来自类本身还是父类必须在初始化程序委托(delegate)给父类之前设置子类属性。这是我认为遵循规则的代码:classWalkingMonster:SKSpriteNode{varrangeOfMovement:CGFloatvaroriginalPosition:CGFloatvarplatformNumber:Intvarim
我所说的概念类似于许多简约、流行的手机游戏中的游戏风格,例如ColorSwitch、LineZen、Phases或Bounce。这些是由一系列随机排列的“关卡”或“房间”组成的无尽游戏,一个接一个,营造出无尽游戏的效果。关键是每个关卡的挑战都不是随机的,它们是事先设计好的,如果某个关卡是随机选择的,它就会出现在屏幕上,玩家就会穿过那个关卡。我认为这个概念可以称为程序生成,但我并不肯定。我如何使用Swift在SpriteKit中执行此操作?我不太确定从哪里开始,也许为每个关卡段创建一个函数,然后每隔几秒,随机选择一个放在屏幕上?感谢任何帮助!非常感谢! 最佳答
这里的代码子类化SKSpriteNode并初始化它接受SKSceneimportSpriteKitclassSpaceship:SKSpriteNode{varspaceship:SKTexturevarhitpoint=100varthescene:SKScenevarlazer5:SKSpriteNode?varlazer5_pathofdestruction:SKSpriteNode?init(skScene:SKScene){thescene=skSceneself.spaceship=SKTexture(imageNamed:"Spaceship")super.init(te
我正试图在我的宇宙飞船后面放一缕烟雾。我将烟道作为发射器节点计算出来,但我似乎无法将发射器连接到宇宙飞船。我不明白为什么这行不通。IE。发射器根本没有出现在屏幕上:varspaceShip:SKSpriteNode?spaceShip=SKSpriteNode(imageNamed:"ship1.png")spaceShip!.position=CGPoint(x:Int(arc4random_uniform(UInt32(self.size.width))),y:Int(arc4random_uniform(UInt32(self.size.height))))lettrailEmm