草庐IT

swift - 在 removefromParent 之后从场景中移除时让 Sprite 发出消息?

在Swift中有什么方法可以告诉我什么时候SKSpriteNode实际上已经从场景中移除了吗?我不认为它实际上是在调用removeFromParent时完成的,但我认为它是稍后完成的,当Sprite-Kit认为这样做很方便时。我试图了解完整的生命周期,我注意到即使在该Sprite已被删除之后,Sprite仍然可以参与didBeginContact中的接触和碰撞。如果我打印出children的内容(即包含场景中所有子项的数组),我会看到Sprite在removeFromParent调用后立即被删除,但Sprite仍然可用(至少,对于这次SK游戏循环的执行)。编辑:这个问题来self之前关

swift - Sprite Kit - 有时球会从屏幕上消失?

我是sprite套件的新手。我试过与2名玩家一起玩简单的球弹跳游戏,另一名玩家正在缓慢地跟踪球。但是我发现了一个问题。当我将线移动到球(带边缘)时,球从屏幕上消失了。另一次没问题,球弹跳。有什么问题?我有一个GameScene、sks和ViewController。我的Sprite节点来自sks。如果有人解释这种情况。会更好。我在下面附上了我所做的。我的游戏场景:classGameScene:SKScene{varball=SKSpriteNode()varenemy=SKSpriteNode()varmain=SKSpriteNode()overridefuncdidMove(tov

xcode - SpriteKit unarchiveFromFile 不会从 Assets 目录和图集中加载纹理

我对SpriteKit还是个新手,想看看我是否可以使用Xcode的SKS编辑器构建关卡。当我添加几个带有“Spaceship.png”纹理的Sprite并构建模板应用程序时,纹理不会加载。这是使用Swift作为语言并添加提供的“Spaceship.png”Sprite的原始OSX游戏模板的屏幕截图。纹理显示良好:这是仅对模板进行修改后构建和运行应用程序的结果:调试控制台显示此警告消息:我尝试添加一个.atlas文件夹,结果相同。场景只显示红色X图标代替Sprite。如果添加的Sprite只是彩色Sprite,它们显示良好。前段时间我废弃了一个应用程序,我曾经在其中加载SKScene并将

ios - 在 iOS 上的 SpriteKit 中,缩放带纹理的 Sprite 会产生不正确的帧?

我学习SpriteKit游戏开发是为了好玩,但我遇到了一个看似简单的问题,却让我很困惑。基本上,在我缩放一个带纹理的SKSpriteNode之后,框架不是我所期望的。我已经想出了一些技巧来强制它达到我想要的效果,但我试图了解发生了什么。任何想法表示赞赏!这是我没有缩放的代码:funcaddSpaceship(){letspaceship=SKSpriteNode.init(imageNamed:"rocketship.png")spaceship.name="spaceship"//spaceship.setScale(0.50)letdebugFrame=SKShapeNode.in

ios - Sprite kit Sprite 加载性能改进

我正在制作一个sprite套件游戏,我正在使用plist文件来设置每个级别的属性。我的plist文件中的一个属性是一个名为patterns的字典,它包含n个项目,其中每个项目都是一个block,手写x和y位置。该模型非常适合我正在制作的游戏类型,因为它可以非常方便地快速正确设置关卡。但是,由于缺乏编码经验,我面临一个无法自行解决的缺点:有些关卡有多达290个block,因此当应用程序尝试读取关卡时,应用程序会卡住大约5秒钟。这对用户来说非常烦人。一开始我的方法是:读取plist文件,并为每个项目调用使用其imageNamed""方法将block创建为SKSpriteNode的方法。我认

ios - Xcode SpriteKit - 删除 Sprite 并停止 Action - repeatActionForever

我是Swift和SpritKit的新手,我的游戏有一些问题。在我的代码的didMoveToView(view:SKView){}部分,我调用了下面的语句来填充屏幕上的怪物。在我的funcaddMonster(){}然后怪物动画从右侧移动到屏幕的左侧。一旦他们离开屏幕的另一侧,Sprite就会被移除。代码ArunAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(addMonster),SKAction.waitForDuration(1.0),SKAction.])))在addMons†er函

swift - Sprite Kit 中的多点触控手势

我在Swift中使用XCode6和Sprite-Kit工作,我有许多不同的节点,但目前我只能检测到一根手指并同时移动一个节点。我想知道如何设法检测多个手指以便同时移动多个节点。我的实际代码是:varlocation=CGFloat()//fingerpositionvaractualNode=-1//nodetouchedbythefinger,-1meansnonodetouchedoverridefunctouchesBegan(touches:NSSet,withEventevent:UIEvent)//whenafingertouchthescreen{fortouch:Any

xcode - 我如何在 Swift 中永远重复一个 Action ?

http://i.imgur.com/xkWTk9i.png我已经得到了这个从上到下的矩形。我遇到的问题是我希望它每2秒重复一次,以便另一个矩形跟随它。我希望我的代码每2秒生成一次矩形,并让它重复,就像flappybird对绿色管道所做的那样。谢谢你。(我之前让这个工作,但我错误地删除了我的项目并且无法弄清楚我首先是如何做到的。)我在Swift中使用Spritekit。.classGameScene:SKScene{letsprite=SKSpriteNode(imageNamed:"Rectangle12")overridefuncdidMoveToView(view:SKView)

ios - (Swift SpriteKit) 按触摸方向旋转 Sprite

在提供的屏幕截图中,红色箭头和十字仅用于演示目的,不在游戏中。我希望飞船的Sprite面向它射出的球的方向。Linktoimage这是我当前的触摸位置代码overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){/*Calledwhenatouchbegins*/fortouchintouches{letlocation=touch.locationInNode(self)varbullet=SKSpriteNode(imageNamed:"bullet")bullet.position=cannon.positionb

swift - Sprite-Kit 场景的背景图片

我现在正在Sprite-Kit场景中工作,我想将背景设置为名为“bgimage”的图像。我如何通过gamescene.swift以编程方式执行此操作?importUIKitimportSpriteKitimportCoreGraphicsclassgameScene:SKScene{} 最佳答案 您可以将背景图像声明为SKSpriteNode,将其位置设置在屏幕中间并将其添加到场景中。importUIKitimportSpriteKitclassgameScene:SKScene{varbackground=SKSpriteNode