草庐IT

Sprite-Kit

全部标签

ios - swift 如何将 SKEmitterNode 添加为 SKSpriteNode 后面的烟雾?

我正试图在我的宇宙飞船后面放一缕烟雾。我将烟道作为发射器节点计算出来,但我似乎无法将发射器连接到宇宙飞船。我不明白为什么这行不通。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

swift - 通知和暂停模式

我正在使用Swift和SpriteKit制作一些游戏。当我的应用程序进入后台时,它会调用暂停功能,但会在游戏恢复时自动取消暂停。funcpauseTheGame(){self.scene?.isPaused=true}应用委托(delegate)funcapplicationWillResignActive(_application:UIApplication){NotificationCenter.default.post(name:NSNotification.Name(rawValue:"goToBackground"),object:self)游戏场景NotificationC

ios - SpriteKit 纹理 "scaling"各不相同

完全相同的纹理,不同的结果这里是SKSpriteNode和SKShapeNode从纹理图集获得相同的纹理。SKSpriteNode在右边,它做正确的事。SKShapeNode在左边,做错事了。拜托,我做错了什么?这是代码...overridefuncdidMove(toview:SKView){letmyTextureAtlas=SKTextureAtlas(named:"demoArt")letarrayOfFileNames=myTextureAtlas.textureNamesletmyTexture=myTextureAtlas.textureNamed(arrayOfFile

swift - for循环不按顺序执行代码(swift + spritekit)

这是我的代码:overridefuncdidMoveToView(view:SKView){/*Setupyourscenehere*/letorigin=CGPoint(x:CGRectGetMidX(self.frame),y:CGRectGetMidY(self.frame))letdelay=SKAction.waitForDuration(2.0)for(vari=0;i基本上,我的球会在圆圈上的随机点上生成并向中心移动。但我遇到的问题是,无论我如何重新安排事物(或重写事物,即尝试不同的循环或定义用于生成球和球运动的函数并简单地从switch语句内部调用它们)所有球同时产生。

swift - 使用奇怪形状的图像运行动画检测 SKSpriteNode 上的触摸

将SpriteKit用于iOS9.0应用程序/游戏(没有物理体)。我在一个场景中有几个SpriteNode。SpriteNodes带有奇形怪状的图像,并贯穿多帧动画。检测对SpriteNode图像内容的触摸,而不是整个图像矩形的透明区域的最佳方法是什么。我看到很多关于使用SKCropNode/MaskImage的帖子。在我的场景中,我为动画的每个SpriteNode设置了多个图像/帧。请就方法提出建议或为我指明正确的方向。谢谢。 最佳答案 基于以上评论的附加信息:在16帧中只有16种形状的情况下,一种更有效的方法是在每一帧绘制大致近

ios - 施加的力使节点移动

我正在创建一个自上而下的台球游戏。整个View就是表格,然后我有多个球节点。当我对球施加力时,它们会持续移动很长时间,我希望力能更快地消失。因为在我很难弄清楚要调整哪个属性之前,我并没有过多地研究物理。我对球的恢复(0.8)相当高,因为我希望它们从边缘反弹。边由此节点定义:SKPhysicsBody(edgeLoopFrom:CGRect(x:-self.size.width/2.0,y:-self.size.height/2.0,width:self.size.width,height:self.size.height))我看到SKShapeNode类上有一个friction属性。我

swift - 类扩展 SKScene 但无法访问其属性

我有一个扩展SKScene的菜单类,但我无法访问View,这是SKScene的一个属性。相反,我收到以下错误:“实例成员‘view’不能用于菜​​单类型。”我需要做什么特别的事情才能访问它吗?看起来它应该已经可以调用它了。这是该类的简化版本:classMenu:SKScene{varblueButton:Button!vartouchNode:SKSpriteNode!varnewScene:SKScene?overridefuncdidMove(toview:SKView){blueButton=self.childNode(withName:"Start")as!Button}..

swift - 我的节点没有发生碰撞,我的代码中是否遗漏了什么?

我遵循了许多关于碰撞的不同教程并创建了我自己的游戏,我想在其中声明硬币和玩家之间的碰撞。但是,在实现碰撞代码后,我的两个节点没有对碰撞做出响应...有人可以帮我吗?importSpriteKitimportGameplayKit//CollisioncategoriesenumColliderType:UInt32{caseplayerCase=1casecoinCase=2caseborderCase=3}classGameScene:SKScene,SKPhysicsContactDelegate{letplayer=SKSpriteNode(imageNamed:"block")

swift - 在 spritekit 中随机化不同的敌人向玩家移动

我想知道是否有人可以回答我的问题。我在Sprite-kit中使用纹理图集创建了3种不同的敌人动画,我想知道是否有一种方法可以在游戏开始后立即随机选择一个敌人向玩家移动。TextureAtlas=SKTextureAtlas(named:"zombies.atlas")foriin1...TextureAtlas.textureNames.count{letZ="z\(i).png"zombieArray.append(SKTexture(imageNamed:Z))}TextureAtlas=SKTextureAtlas(named:"baldzomb.atlas")foriin1..

swift - 如何一次生成多个相同的 SpriteNode?

所以我有3个不同的障碍物,它们随机产生并在3秒后被移除,但是如果例如Obstacle1已经产生并且随机数告诉程序产生另一个Obstacle1,我得到一个错误"Terminatingappduetouncaughtexception'NSInvalidArgumentException',reason:'AttempedtoaddaSKNodewhichalreadyhasaparent"这里是Obstacle1的代码,其他两个几乎一样只是名字不同:函数createObst1(){self.addChild(obst1)path=UIBezierPath(arcCenter:CGPoin