我正在制作一个sprite套件游戏,我正在使用plist文件来设置每个级别的属性。我的plist文件中的一个属性是一个名为patterns的字典,它包含n个项目,其中每个项目都是一个block,手写x和y位置。该模型非常适合我正在制作的游戏类型,因为它可以非常方便地快速正确设置关卡。但是,由于缺乏编码经验,我面临一个无法自行解决的缺点:有些关卡有多达290个block,因此当应用程序尝试读取关卡时,应用程序会卡住大约5秒钟。这对用户来说非常烦人。一开始我的方法是:读取plist文件,并为每个项目调用使用其imageNamed""方法将block创建为SKSpriteNode的方法。我认
我们如何在不重新创建SKShapeNode的情况下更改它的半径?在头文件中只有一个带有circleOfRadius语法的初始化程序。 最佳答案 如果您使用路径创建SKShapeNode,您可以在以后随时更改路径。试试这个:classGameScene:SKScene{overridefuncmouseDown(theEvent:NSEvent){letlocation=theEvent.locationInNode(self)letnode=self.nodeAtPoint(location)ifletcircle=nodeas?S
我有一个应用程序,每次触摸屏幕时都会播放一个声音文件。出于某种原因,该应用程序每隔一段时间就会崩溃并出现以下错误:reason:'Resourcetick.mp3cannotbeloaded'如果您需要,这里是我每次点击屏幕时播放文件的方式:runAction(SKAction.playSoundFileNamed("tick.mp3",waitForCompletion:false))这种情况不会经常发生,大约每10次应用程序运行中就有1次发生。大多数时候一切都按预期工作。我希望我知道我在做什么导致崩溃,但我不知道!我只是轻敲一下,看起来与它没有崩溃的时候没有什么不同。然后突然间我得
真的没有办法设置SKLabelNode的样式吗?我的意思是除了改变字体和颜色之外。我知道我可以通过在第一个SKLabelNode后面创建第二个SKLabelNode来添加投影之类的操作(已经有点老套了)。出于显而易见的原因,为我的字体创建图像也很糟糕。奇怪的是,您无能为力摆脱无聊的平面文本。我的意思是......即使是spritekit节点数也有一个很酷的渐变风格......这是怎么做到的?!好吧,我正在尝试重新创建渐变效果。我已经尝试了混合模式的每一种组合,以及颜色和colorBlendFactor的多种组合。阿尔法相乘添加这是代码lettestNode=SKLabelNode(te
我正在使用Spritekit深入研究GameplayKit,根据我收集的信息,您将GKEntity子类化,然后开始向该实体添加GKComponents。实体将或多或少只是一袋填充某些功能的组件。我感到困惑的部分是组件之间的通信。你如何让他们分离。例如,假设我有一个HealthComponent类,我将该组件添加到一个PlayerEntity和一个EnemyEntity。我还有一个HealthBarComponent但我只想在玩家上方显示一个健康栏。当玩家受到伤害时,需要在HealthBarComponent中更新该信息。那么应该如何发送这些信息呢?我看到文档中有一个名为GKCompon
我是Swift新手。我不明白为什么这段代码:classGameScene:SKScene,SKPhysicsContactDelegate{varstatements=Statements()overridefuncdidMoveToView(view:SKView){runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(addLabel(statements)),SKAction.waitForDuration(2.0)])))}funcaddLabel(statements:State
我是Swift和SpritKit的新手,我的游戏有一些问题。在我的代码的didMoveToView(view:SKView){}部分,我调用了下面的语句来填充屏幕上的怪物。在我的funcaddMonster(){}然后怪物动画从右侧移动到屏幕的左侧。一旦他们离开屏幕的另一侧,Sprite就会被移除。代码ArunAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(addMonster),SKAction.waitForDuration(1.0),SKAction.])))在addMons†er函
我在Swift中使用XCode6和Sprite-Kit工作,我有许多不同的节点,但目前我只能检测到一根手指并同时移动一个节点。我想知道如何设法检测多个手指以便同时移动多个节点。我的实际代码是:varlocation=CGFloat()//fingerpositionvaractualNode=-1//nodetouchedbythefinger,-1meansnonodetouchedoverridefunctouchesBegan(touches:NSSet,withEventevent:UIEvent)//whenafingertouchthescreen{fortouch:Any
我想创建一个位于UITextView内子字符串位置的SpriteKit节点。我将如何检索CGPoint位置以便我可以将SKNode定位在那里?lettextFont=[NSFontAttributeName:UIFont(name:"GillSansMT",size:30.0)??UIFont.systemFontOfSize(18.0)]attrString1=NSMutableAttributedString(string:"MynameisDug.",attributes:textFont)textShown1=CustomTextView(frame:CGRectMake(CG
Rob提供agreatObjective-Csolution用于子类化NSOperation以实现SKAction对象的串行排队机制。我在自己的Swift项目中成功实现了这一点。importSpriteKitclassActionOperation:NSOperation{let_node:SKNode//Thespritenodeonwhichanactionistobeperformedlet_action:SKAction//Theactiontoperformonthespritenodevar_finished=false//Ourread-writemirrorofthes