草庐IT

Sprite-Kit

全部标签

ios - SpriteKit 在转换到新场景时收到有关 UIElements 的错误

你好,我正在使用Swift开发一个SpriteKit游戏,目前只有两个场景,加载场景和游戏场景。游戏场景会在显示之前访问数据库以获取信息。游戏场景中的一切都很好。当我先进入加载场景而不是直接进入游戏场景时,我遇到了问题。通过回调,我告诉加载场景在完成数据库工作后呈现游戏场景。然而,当我尝试演示时,我遇到了10多个这样的大错误:2015-11-1209:48:33.880SpaceAcademy[2373:764586]Thisapplicationismodifyingtheautolayoutenginefromabackgroundthread,whichcanleadtoengi

swift - 处理多个 GestureRecognizers

我在理解UIGestureRecognizers时遇到了问题。我现在的目标是拥有一组GestureRecognizers来执行不同的任务,例如:overridefuncviewDidLoad(){mainScene=GameScene(size:self.view.bounds.size)main=viewas!SKViewmainScene.panRecognizer=UIPanGestureRecognizer(target:self,action:#selector(shiftView(recognizer:)))main.addGestureRecognizer(mainSce

fonts - 如何在 SpriteKit 项目中使用自定义字体? - swift

我是swift的新手,我想在我的SpriteKit项目中添加自定义字体,但是,环顾四周后,我找不到解决方案。 最佳答案 首先,您需要将字体拖到项目中。之后,您需要选择字体并为您的应用选择目标成员(member)复选标记,如图所示。之后,您转到Info.plist并在“应用程序提供的字体”中添加字体文件名(带扩展名)现在您终于可以像使用其他所有字体一样使用该字体了。如果它不能正常工作,你可以找到Xcode给字体的名称swift:fornameinUIFont.familyNames(){println(name)ifletnameSt

ios - swift & SpriteKit : Full screen image

我正在使用SpriteKit快速制作第一个场景。我为尺寸为640x1136的4英寸iPhone创建了背景图像。我将图像作为Sprite放置在屏幕中央,但图像不是全屏,缺少边缘。接下来,我尝试在应用程序中调整图像的大小。当我执行image.size.height=self.size.height时,高度会沿着整个iPhone屏幕正确调整大小。但是,当我对宽度image.size.width=self.size.width执行相同操作时,图片在宽度方向上得到了极大的拉伸(stretch)。我打印了self.size的尺寸,结果我的iPhone5s的尺寸是1024,768。这完全是胡说八道,

swift - SKNode 子类生成错误 : cannot invoke initializer for type "X" with no arguments

SKNodes可以用一个空的初始化器来初始化,例如,letnode=SKNode()。但是,子类化SKNode会破坏此功能。在子类化SKNode之后,Xcode在尝试在子类上使用空初始化程序时生成此错误:Cannotinvokeinitializerfortype"X"withnoarguments假设SKNodeSubclass是SKNode的子类,行letnode=SKNodeSubclass()会生成此错误。IsitpossibletosubclassfromSKNodeandalsouseanemptyinitializerlikewithSKNode?classStatusS

ios - SpriteKit 中的 CPU 使用率非常高

我正在SpriteKit中制作一个简单的基于图block的游戏,我在游戏中遇到高CPU使用率的问题。我有一个由60个图block组成的map,每个图block都是SKSpriteNode的子类。仅在场景中显示这60个Sprite就占用了iPhone6s模拟器中高达80%的CPU。没有运动、用户交互或物理发生。当我在UIKit而不是SpriteKit中制作相同的游戏时,我的CPU使用率是0。什么可以使用这么多CPU?我的瓷砖类:importSpriteKitimportUIKitclassTile:SKSpriteNode{vartileType="grass",tileX=0,tile

ios - 错误 : Attemped to add a SKNode which already has a parent

我正在用Swift3和SpriteKit做一个游戏,我试图声明一个全局变量以在GameScene类的其余部分中使用它,但我做不到。我做了什么:classGameScene:SKScene{...letpersonaje=SKSpriteNode(imageNamed:"Ball2.png")...在全局声明之后,我尝试像那样在sceneDidLoad中使用它:...personaje.position=CGPoint.zeroaddChild(personaje)...我不知道为什么,但Xcode返回此错误:***Terminatingappduetouncaughtexception

ios - Swift:无法将 AnyObject 向下转换为 SKPhysicsBody

Apple在SKPhysicsBody类中有以下方法。/*ReturnsanarrayofallSKPhysicsBodiescurrentlyincontactwiththisone*/funcallContactedBodies()->[AnyObject]!我注意到它返回一个AnyObject数组。所以我读到了如何处理向下转换AnyObjectHere我想遍历物理体的allContactedBodies数组。问题是,无论我尝试什么,我都无法正常工作。我首先尝试了这个:forbodyinself.physicsBody.allContactedBodies()as[SKPhysic

swift - SKNode 相对于其父节点的 zPosition?

我一直认为SKNode的zPosition是相对于其父节点的,但现在我遇到了相反的效果。我的场景中有两个父SKNode,它们的zPosition分别为1(node1)和2(node2)。我想要实现的是node2应该始终在node1之上分层。但不幸的是,node1的子节点(其zPosition为1-50)都位于node2的子节点(当前没有zPosition)之上。有没有办法解决这个问题(除了给node2一个超过50的zPosition)?也许是某种bool参数来设置所有子节点相对于其父节点的zPosition?任何帮助将不胜感激!编辑:为了更清楚,这里是所有元素的层次结构:node1:S

swift - 你如何判断一个节点是否在屏幕上 spritekit swift

我想弄清楚如何确定一个节点是在屏幕上还是屏幕外可见。这只是节点的真/假属性吗?谢谢。(使用swiftspritekit) 最佳答案 您可以使用以下方法测试场景中是否有节点:if(!intersectsNode(sprite)){println("nodeisnotinthescene")}这假设self是一个SKScene子类,例如GameScene。 关于swift-你如何判断一个节点是否在屏幕上spritekitswift,我们在StackOverflow上找到一个类似的问题: