草庐IT

Spritekit

全部标签

ios - 无法在 SpriteKit 中获取 skAudioNode 的 3D 音频效果

我正在尝试在WWDC2015中宣布的新skAudioNode。我是swift和spriteKit的新手。首先,在sks编辑器中,我将一个音频对象拖到场景中,并命名为audioNodeRed,它附加到一个视觉上红色的sprikit节点。我在编辑器中指定了指向此节点的wav文件链接。在GameScene.swift中,我写道:letredNode:SKAudioNode=childNodeWithName("//audioNodeRed")as!SKAudioNode;letactionPlaySound=SKAction.play()redNode.runAction(actionPla

swift - 从两个对象检测 SpriteKit 上的碰撞

当我用大炮射击时,我在检测两个物体的碰撞时遇到了一些问题。目标是从中射出一颗子弹,并在它与障碍物碰撞后立即移除。似乎游戏中根本没有发生碰撞,因为我无法收到我设置的“碰撞”消息。看看下面的代码:classGameScene:SKScene,SKPhysicsContactDelegate{enumBodyType:UInt32{casebullet=1caseline=2casebreaker=4}我已经列举了组件,所以我可以将它们设置在类别位掩码中。之后,我在触摸开始时进行了拍摄设置。overridefunctouchesBegan(touches:Set,withEventevent

ios - SpriteKit : A Lot of sprites (1000+) with Bit Blitting

我正在尝试使用SpriteKit创建一个场景,其中包含数千个Sprite(~500-2000)。每个Sprite只是一个1x1的白色像素-甚至不需要为它们使用纹理。一次直接向场景中添加这么多Sprite是不可能的(至少我是这么认为的)。在iPhone6上,我最终添加了大约200个Sprite,然后由于内存原因系统结束了添加过程,并且没有添加其余的Sprite。我找到了一个聪明的解决方案BitBlitting所有Sprite都添加到一个节点,然后使用textureFromNode:方法将其“转换”为纹理,然后从该纹理创建一个Sprite,最终将其添加到屏幕。它运行良好,我能够以出色的fp

ios - 如何通过在 Spritekit 中触摸隐藏的 SKSpriteNode 来检测它们?

我正在使用Spritekit创建棋盘游戏。最初所有的部分(SKSpriteNode)都是隐藏的。它们应该在我触摸它们之后出现吗?但是由于它们被设置为隐藏,所以当我重写touchBegan函数时我无法访问它们。我该怎么办?overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){letlocation=touches.first!.locationInNode(self)lettouchedNode=self.nodeAtPoint(location)if(touchedNode.name=="pieces"){if(to

ios - 如何在 sks 文件 "SpriteKit action"中的 Xcode Action 编辑器上获取所有 Action 名称

我有一个SpriteKitAction文件,里面有一些Action。要使用一个Action,我使用:letaction=SKAction(named:"Shake")Instead是否可以直接使用MyActions.sks文件中的名称?类似于:letactions=SKScene(fileNamed:"MyActions.sks")`letshakeAction=actions.listOfAction.Shake//thisismyguess如果我打印场景文件:letactions=SKScene(fileNamed:"MyActions.sks")print(actions)输出是

ios - SpriteKit SKSpriteNode 移动

我有一些纹理...placeForJump=SKSpriteNode(imageNamed:"placeForJump")placeForJump.position=CGPoint(x:512.346,y:98.88)placeForJump.size=CGSize(width:166.407,height:197.762)placeForJump.zPosition=2self.addChild(placeForJump)和性格...player=SKSPriteNode(imageNamed:"character")player.position...player.size...p

ios - 在 SpriteKit 中添加到父级时未显示未归档的节点

之前我在质疑我是否可以使用场景编辑器创建复杂的SKSpriteNodes与仅使用它来布局SKScenes。在@AntonRogachevskyi的帮助下thepreviousquestion我开始使用unarchiveNodeFromFile来定位.SKS文件。它按照我的预期加载了sks文件,但是当我尝试将它添加到当前场景时,什么也没有出现。如果我在addChild行中断并预览它在预览窗口中正确显示的对象,那么我知道它找到了正确的文件。sks文件中有一个自定义对话框类,并在“requiredinit?(coderaDecoder:NSCoder)”中设置断点,我可以看出自定义对象正在正

swift - 如何将 UITextField 添加到 SKScene(SpriteKit 游戏)

我一直在无休止地寻找解决方案。许多已经打开的问题要么没有得到回答,要么解释得很模糊。我正在尝试将UITextField添加到我的SKScene,因为玩家需要能够为此游戏创建一个帐户。vartxtField:UITextField!我在这里声明文本字段。txtField=UITextField(frame:CGRect(x:frame.midX,y:frame.midY,width:200,height:30));view.addSubview(txtField!)通过这两行,我试图将文本字段添加为subview。当我运行应用程序时,文本字段不可见。我在这里做错了什么?我需要更改此sub

ios - GameScene SpriteKit 不适合 iPhone X 显示

我一直在寻找并尝试我在互联网上找到的所有解决方案。他们都没有按预期工作。我的游戏需要一个边框,如所附图片所示。它适用于iPhone8和8Plus。在X上,我似乎无法在不破坏我的游戏场景的情况下找到合适的方法来填充它。即使我使用resizeFill或aspectFill,它也会从我的游戏区域中切断重要内容。图像中的那个是aspectFit,但给我的黑色边框看起来不太好,而且没有利用大屏幕。GameScene文件中的布局不符合iPhoneX。我怎样才能使游戏针对所有这3种设备进行优化。我知道如何在具有约束和自动布局的Storyboard上为应用程序执行此操作,但我对SpriteKit和Ga

ios - 即使调用了 removeAllChildren,SpriteKit 中的内存也会增加

数周以来,我一直在尝试解决SpriteKit内存增加的问题,但没有找到任何解决方案。我已经尝试了几乎所有我在网上遇到的用于管理SK内存的方法,但仍然遇到麻烦。这是我的情况:我首先展示SKScene“HomeScreen”,然后在我的ViewController中使用UIButton更改页面场景,如下所示:funcnextPage(sender:UIButton){pageNumber=pageNumber+1letswitchPage=SKTransition.crossFadeWithDuration(3.0)switchPage.pausesOutgoingScene=falses